0

0

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

心靈之曲

心靈之曲

发布时间:2024-09-28 08:36:20

|

688人浏览过

|

来源于dev.to

转载

使用 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 发送电子邮件。

<?php
// load composer's autoloader if using composer
require 'vendor/autoload.php';

// import phpmailer classes into the global namespace
use phpmailer\phpmailer\phpmailer;
use phpmailer\phpmailer\exception;

$mail = new phpmailer(true);

try {
    //server settings
    $mail->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 <b>test email</b> 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}";
}

逐部分细分:

  1. phpmailer 初始化:

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

    • 通过 composer 包含必要的文件后,我们创建 phpmailer 类的实例。
    • try-catch 块用于处理发送电子邮件时可能发生的任何异常。
  2. 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 服务器所需的端口。
  3. 设置发件人和收件人:

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

    Yodayo
    Yodayo

    一个专为动漫迷和vTuber打造的AI艺术创作平台、交流社区

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

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

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

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

  1. 使用信誉良好的 smtp 提供商

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

  2. 验证您的域名:

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

  3. 避免垃圾内容

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

  4. 使用纯文本替代:

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

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

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

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

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

第 4 步:运行脚本

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

php send_email.php

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

message has been sent

如果有错误,会显示:

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

结论

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

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

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

欢迎关注我:

  • 领英
  • github

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

161

2023.12.25

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

4211

2026.01.21

SSL检测工具介绍
SSL检测工具介绍

SSL检测工具有SSL Labs、SSL Check、SSL Server Test、SSLMate、SSL/TLS Analyzer等。详细介绍:1、SSL Labs是一个由Qualys提供的在线SSL检测工具,可以评估服务器证书的部署情况、加密套件、协议支持等方面的安全性,它提供了一个详细的报告,包括证书的颁发者、有效期、安全性配置等;2、SSL Check等等。

355

2023.10.20

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

71

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

82

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Git 教程
Git 教程

共21课时 | 4.2万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.6万人学习

Git中文开发手册
Git中文开发手册

共0课时 | 94人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号