使用 PHP 安全地传送电子邮件:使用 SMTP 发送无垃圾邮件的指南

使用 php 安全地传送电子邮件:使用 smtp 发送无垃圾邮件的指南

这是如何使用 php smtp 发送电子邮件而不进入垃圾邮件文件夹的分步示例

我们将使用 phpmailer 库,它简化了通过 smtp 发送电子邮件的过程,并有助于提高送达率。按照以下步骤,您将了解如何正确配置 smtp 以避免电子邮件进入垃圾邮件文件夹。

第1步:安装phpmailer

首先,您需要安装 phpmailer 库。您可以使用 composer 来完成此操作。

composer require phpmailer/phpmailer

如果您没有 composer,您可以从 github 手动下载 phpmailer 并将其包含在您的项目中。

第 2 步:创建 php 邮件脚本

创建一个新文件 send_email.php,您将在其中编写脚本以使用 phpmailer 和 smtp 发送电子邮件。

issmtp();                                          // use smtp    $mail->host = 'smtp.example.com';                         // set the smtp server (use your smtp provider)    $mail->smtpauth = true;                                   // enable smtp authentication    $mail->username = 'your_email@example.com';               // smtp username    $mail->password = 'your_password';                        // smtp password    $mail->smtpsecure = phpmailer::encryption_starttls;       // enable tls encryption, `ssl` also accepted    $mail->port = 587;                                        // tcp port to connect to (587 is common for tls)    //recipients    $mail->setfrom('your_email@example.com', 'your name');    $mail->addaddress('recipient@example.com', 'recipient name');  // add recipient    $mail->addreplyto('reply_to@example.com', 'reply address');    // add a reply-to address    // content    $mail->ishtml(true);                                        // set email format to html    $mail->subject = 'test email subject';    $mail->body    = 'this is a test email sent using phpmailer and smtp.';    $mail->altbody = 'this is a plain-text version of the email for non-html email clients.';    // send the email    $mail->send();    echo 'message has been sent';} catch (exception $e) {    echo "message could not be sent. mailer error: {$mail->errorinfo}";}

逐部分细分:

phpmailer 初始化:

立即学习“PHP免费学习笔记(深入)”;

通过 composer 包含必要的文件后,我们创建 phpmailer 类的实例。try-catch 块用于处理发送电子邮件时可能发生的任何异常。

smtp 服务器配置:

$mail->issmtp() 告诉 phpmailer 使用 smtp 发送电子邮件。$mail->host = ‘smtp.example.com’:将 ‘smtp.example.com’ 替换为您的 smtp 提供商的主机(例如,gmail 的 smtp 是 ‘smtp.gmail.com’)。$mail->smtpauth = true:这将启用身份验证,这通常是 smtp 服务器所需要的。$mail->username 和 $mail->password:在此处输入您的 smtp 凭据。$mail->smtpsecure:设置加密方法。为了安全起见,建议使用 tls (starttls)。$mail->port:常见的 smtp 端口为 tls 的 587 和 ssl 的 465。使用您的 smtp 服务器所需的端口。

设置发件人和收件人:

$mail->setfrom(‘your_email@example.com’, ‘你的名字’): 指定发件人的电子邮件和姓名。$mail->addaddress(‘recipient@example.com’, ‘收件人姓名’): 添加收件人的电子邮件和姓名。$mail->addreplyto(): 设置回复电子邮件地址(可选)。

设置邮件内容:

$mail->ishtml(true): 指定电子邮件内容将为 html。$mail->subject: 设置电子邮件主题。$mail->body:这是电子邮件的 html 内容。$mail->altbody:这是电子邮件正文的纯文本版本,对于不支持 html 的电子邮件客户端很有用。

发送电子邮件

$mail->send() 尝试发送电子邮件。如果成功,则打印成功信息;否则,错误将被捕获并显示。

步骤 3:smtp 配置和最佳实践

为了避免电子邮件进入垃圾邮件文件夹,遵循以下最佳实践至关重要:

使用信誉良好的 smtp 提供商

使用 gmail、sendgrid 或 mailgun 等受信任的 smtp 提供商可以提高送达率,因为它们不太可能被标记为垃圾邮件。

验证您的域名:

为您的邮件设置 spf(发件人策略框架)、dkim(域名密钥识别邮件)和 dmarc(基于域的邮件身份验证、报告和一致性)记录域来验证您的电子邮件的合法性。

避免垃圾内容

确保您的电子邮件内容干净且未被标记为垃圾邮件。避免过度使用全部大写、垃圾词(如“免费”、“获胜者”等)以及过多的链接。

使用纯文本替代:

始终包含电子邮件的纯文本版本 ($mail->altbody)。一些电子邮件客户端将纯 html 电子邮件标记为可疑。

避免使用免费电子邮件服务作为发件人

使用您自己域中的专业电子邮件地址,而不是 gmail、yahoo 等免费服务,以避免被标记为垃圾邮件。

限制每封电子邮件的收件人数量

如果发送批量电子邮件,请使用适当的批量电子邮件服务,而不是在一封邮件中发送给多个收件人,以避免被标记为垃圾邮件。

第 4 步:运行脚本

将send_email.php文件上传到您的服务器并在浏览器中或通过命令行运行它:

php send_email.php

如果配置正确,您将看到消息:

message has been sent

如果有错误,会显示:

Message could not be sent. Mailer Error: {Error Message}

结论

通过使用 phpmailer 和正确的 smtp 设置,您可以确保您的电子邮件可靠发送,并且降低进入垃圾邮件文件夹的机会。这是一个快速总结:

安装 phpmailer 以简化使用 smtp 发送电子邮件。通过身份验证和加密正确配置 smtp使用正确的域名验证(spf、dkim、dmarc)来提高送达率。编写干净、非垃圾邮件的电子邮件内容并始终包含纯文本版本。运行脚本并监控成功消息或错误日志。

此方法可确保更好的送达率并减少电子邮件被标记为垃圾邮件的机会。

欢迎关注我:

领英github

以上就是使用 PHP 安全地传送电子邮件:使用 SMTP 发送无垃圾邮件的指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1247475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 19:31:03
下一篇 2025年12月8日 07:32:29

相关推荐

  • 使用 PHPUnit 测试 PHP 代码的初学者指南

    如何使用 phpunit 在 php 中开始测试 以及分步指南。 第 1 步:安装 phpunit 开始编写测试之前,您需要在项目中安装 phpunit。 您可以使用 composer 全局安装它: composer global require phpunit/phpunit 或者为特定项目在本地…

    2025年12月9日
    000
  • PHP 升级:使用 PHPStan 阻止回归

    照片由 ron mcclenny 在 unsplash 上拍摄 通常,当人们想到 phpstan 时,他们通常会想到改进类型覆盖率。这实际上只是 phpstan 能力的一小部分。在本文中,我们将学习如何使用它来停止升级回归。 什么是升级回归? 升级回归是指您希望删除应用程序中的某些功能。这可能是您的…

    2025年12月9日
    000
  • 小 Swoole Symfony Http 客户端 0

    Small Swoole Symfony Http Client 的第一个版本来了。 这是一个基于 swoole 的 Symfony HTTP 客户端实现,符合 Symfony HttpClientInterface,用于高性能异步 HTTP 请求。 Swoole 和 OpenSwoole 兼容性重…

    2025年12月9日
    000
  • 端到端测试中的 PHP 函数代码覆盖率

    在端到端测试中,利用 phpunit 和 xdebug 可测量 php 函数代码覆盖率,以识别未测试的代码路径,步骤包括:安装 phpunit 和 xdebug启用 php.ini 中的 xdebug使用 phpunit 创建 e2e 测试用例运行测试并生成覆盖率报告查看覆盖率报告以识别未覆盖的代码…

    2025年12月9日
    000
  • PHPUnit 中的 PHP 函数代码覆盖率

    phpunit 中的 php 函数代码覆盖率可以通过以下步骤实现:安装 phpunit:在项目中安装 phpunit。集成 phpunit:更新 composer.json 文件加入 psr-4 自动加载。创建测试类:在 tests/ 目录下创建测试类,包含要测试的函数。启用代码覆盖率:在 phpu…

    2025年12月9日
    000
  • php函数版本管理与升级最佳实践

    最佳实践:管理 php 函数版本以确保代码稳定性和安全性。使用 composer 指定依赖关系的版本。渐进式升级函数版本,每次升级一个版本。使用测试用例验证升级后的功能。在分阶段环境中测试升级,再部署到生产环境。 PHP 函数版本管理与升级最佳实践 在维护 PHP 应用程序时,管理函数版本至关重要,…

    2025年12月9日
    000
  • php函数跨平台兼容性错误的应对指南

    在不同 php 版本和操作系统之间迁移代码时,可通过以下步骤应对函数跨平台兼容性错误:检查兼容性问题,使用 phpinfo(),尝试不同操作系统,查阅 php 手册。使用 shims 提供兼容层,实现不兼容函数。编写平台特定代码处理不同行为,如针对 windows 和其他平台编写 tempnam()…

    2025年12月9日
    000
  • php函数单元测试实战技巧

    php 单元测试有利于保证代码质量,技巧如下:使用测试框架(如 phpunit)进行单元测试,定义测试用例、预期的结果,并编写测试用例(如求和函数测试)。高级技巧包括断言验证、模拟依赖项行为、覆盖率检查和持续集成。这些技巧有助于编写有效且可靠的 php 函数单元测试,以提升代码质量。 PHP 函数单…

    2025年12月9日
    000
  • php函数与第三方库集成策略

    php 与第三方库集成策略有三个:1. 使用 composer;2. 手动下载并包含;3. 使用 composer 的自动加载。选择最合适的策略取决于库大小、项目需求和个人偏好。遵循这些实践,可以轻松集成第三方库,提高 php 项目的开发效率和代码质量。 PHP 函数与第三方库集成策略 在 PHP …

    2025年12月9日
    000
  • PHP 函数单元测试中的自动化报告生成

    在 php 中进行函数单元测试时,自动化报告生成对于快速分析测试结果至关重要。以下步骤可以帮助您使用 phpunit 和 phpmetrics 生成自动化报告:安装 phpunit 和 phpmetrics。创建单元测试。在 phpunit.xml 中配置 phpmetrics 报告生成。运行 ph…

    2025年12月9日
    000
  • php函数最佳实践和设计模式

    php 函数最佳实践和设计模式最佳实践:遵循 psr-12 命名规则使用参数类型提示指定返回值类型使用默认值记录异常设计模式:单例模式:确保只有一个类实例观察者模式:允许对象订阅其他对象的状态变更 PHP 函数最佳实践和设计模式 编写可维护、可扩展且高效的 PHP 函数至关重要。遵循最佳实践并应用设…

    2025年12月9日
    000
  • PHP 函数单元测试中的版本控制

    PHP 函数单元测试中的版本控制 在 PHP 项目中进行单元测试时,保持代码库和测试的同步至关重要。本文介绍了使用版本控制系统(如 Git)管理 PHP 函数单元测试的方法,包括如何追踪测试代码更改、管理不同版本的测试以及与主代码保持一致。 追踪测试代码更改 在将单元测试添加到代码库之前,请初始化一…

    2025年12月9日
    000
  • PHP 函数与 C 扩展交互的跨平台兼容性

    php 扩展与 c 扩展交互时跨平台兼容性存在问题,包括头文件包含、数据类型和 api 调用差异。解决这些问题的方法有:使用条件编译根据平台定义代码;创建平台抽象层来隐藏系统差异;配置扩展加载以根据平台进行调整;使用跨平台库来处理特定平台相关的任务。 PHP 函数与 C 扩展交互的跨平台兼容性 PH…

    2025年12月9日
    000
  • PHP 函数如何使用 gRPC 调用外部函数?

    通过以下步骤使用 php 函数调用外部 grpc 服务:安装 php grpc 库。定义 proto3 消息。使用 protoc 命令生成 php 类。编写 php 函数和 grpc 服务。启动 grpc 服务器。使用 grpc 客户端调用外部 grpc 服务。 使用 PHP 函数通过 gRPC 调…

    2025年12月9日
    000
  • Laravel 入门:查询生成器初学者指南

    laravel 的 查询生成器 提供了一个强大、流畅的界面,用于在 php 中构建 sql 查询。它允许您以富有表现力的、类似 sql 的语法与数据库交互,同时抽象出大部分复杂性。 我们将演练 laravel 应用程序中的典型用例,使用查询生成器执行各种任务,例如选择、插入、更新和删除数据。 第 1…

    2025年12月9日
    000
  • 什么是 PHP CodeSniffer?

    PHP CodeSniffer 是一种流行的工具,用于检测 PHP 代码中违反编码标准的情况。它通过分析 PHP、JavaScript 和 CSS 文件以遵守定义的编码标准,帮助保持代码库的一致性和质量。 PHP CodeSniffer 的主要特性 编码标准执行: CodeSniffer 根据预定义…

    2025年12月9日
    000
  • 如何使用 PHP 函数调用外部函数并获取其输出

    php exec() 函数可用于调用外部函数并获取其输出。其语法为:exec(string $command, array &$output = null, int &$return_var = null) : bool。参数包括:$command(要执行的命令字符串)、$outpu…

    2025年12月9日
    000
  • 如何使用 PHP 测试库编写单元测试

    如何在 PHP 中使用 PHPUnit 编写单元测试 简介 单元测试是一种用于测试单个软件函数或方法是否按预期运行的技术。PHPUnit 是一个用于 PHP 的流行单元测试框架,在编写健壮且可维护的代码时非常有用。 安装 PHPUnit 立即学习“PHP免费学习笔记(深入)”; 要在 PHP 中使用…

    2025年12月9日
    000
  • 如何使用 PHPUnit 进行 PHP 函数单元测试

    phpunit 是一个用于 php 函数单元测试的框架,安装后可在测试用例中使用断言和模拟工具对预期行为进行验证。具体步骤如下:安装 phpunit。创建测试用例,其中包含测试方法和断言。运行 phpunit 从命令行执行测试。 如何使用 PHPUnit 进行 PHP 函数单元测试 简介 PHPUn…

    2025年12月9日
    000
  • 如何执行 PHP 函数单元测试?

    如何执行函数单元测试?使用 php 中的 phpunit 框架分三步执行函数单元测试:安装 phpunit,创建测试用例类,编写单元测试方法。断言用于验证结果。 如何在 PHP 中执行函数单元测试? 什么是单元测试? 单元测试是一种软件测试方法,它验证软件代码中的单个函数或方法的正确性。它有助于确保…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信