如何防止我的 PHP mail() 电子邮件进入垃圾邮件文件夹?
防止使用 PHP 的 mail() 函数发送的电子邮件进入收件人的垃圾邮件文件夹是一项多层次的任务,涉及配置服务器、优化邮件内容、以及遵循电子邮件发送的最佳实践。以下是具体的方法和建议:
SPF 记录告诉收件人的邮件服务器哪些服务器有权代表您的域发送电子邮件。
如何设置:
v=spf1 ip4:123.123.123.123 include:mailserver.com ~all
ip4:您的服务器的 IP 地址。include:其他允许发送邮件的服务(例如 SendGrid、Mailgun)。DKIM 用于验证电子邮件的真实性,确保邮件内容未被篡改。
如何设置:
DMARC 将 SPF 和 DKIM 策略结合起来,并提供报告机制。
如何设置:
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com
邮件内容中避免使用常见的垃圾邮件关键词,如 "免费"、"中奖"、"促销" 等。
优化示例:
恭喜您!您赢得了免费大奖!尊敬的用户,以下是您订阅的活动详情。退订链接可以减少被标记为垃圾邮件的可能性。
示例代码:
<p>如果您不希望接收此邮件,请点击 <a href="https://example.com/unsubscribe">退订链接</a>。</p>
no-reply@example.com)。Return-Path 告诉收件人邮件未送达时的返回地址。
示例代码:
$headers = "From: sender@example.com\r\n";
$headers .= "Reply-To: replyto@example.com\r\n";
$headers .= "Return-Path: sender@example.com\r\n";
原生的 mail() 函数功能有限,推荐使用更高级的邮件库如 PHPMailer 或 SwiftMailer。
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'username@example.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('recipient@example.com', 'Recipient Name');
$mail->isHTML(true);
$mail->Subject = '邮件主题';
$mail->Body = '<p>这是 HTML 邮件内容。</p>';
$mail->AltBody = '这是纯文本内容。';
if ($mail->send()) {
echo '邮件发送成功';
} else {
echo '邮件发送失败:' . $mail->ErrorInfo;
}
确保邮件头信息完整且无误:
From: 必须设置发件人。Reply-To: 可选设置回复地址。MIME-Version: 指定 MIME 版本。Content-Type: 指定内容类型(如 text/plain 或 text/html)。通过以下措施可以显著减少 PHP mail() 函数发送的邮件被标记为垃圾邮件的可能性:
这些最佳实践将帮助您提高邮件的送达率,并减少被标记为垃圾邮件的可能性。
2025 年陆剧市场依旧热度爆棚
时间:2025-09-19
阵地央一首播:年度高品质大剧,深度解锁文化抗战三重非凡意义
时间:2025-09-18
陈展鹏刘佩玥《巨塔之后》今首播
时间:2025-08-28
生万物大结局惊现最招恨角色,原来真正的坏都披着善的“羊皮”!
时间:2025-08-28
归队6集燃爆:袁姗姗化身“战地玫瑰”,实战军医双在线超吸睛!
时间:2025-08-28
许凯田曦薇新剧《子夜归》首播,点击率位列第七
时间:2025-08-21