以下是如何使用 PHP SMTP 发送电子邮件而不进入垃圾邮件文件夹的分步示例。
我们将使用 PHPMailer 库,它简化了通过 SMTP 发送电子邮件的过程,并有助于提高送达率。按照以下步骤,您将了解如何正确配置 SMTP 以避免电子邮件进入垃圾邮件文件夹。
首先,您需要安装 PHPMailer 库。您可以使用 Composer 来完成此操作。
composer require phpmailer/phpmailer
如果您没有 Composer,您可以从 GitHub 手动下载 PHPMailer 并将其包含在您的项目中。
创建一个新文件 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}"; }
PHPMailer 初始化:
SMTP 服务器配置:
设置发件人和收件人:
设置邮件内容:
发送电子邮件:
为了避免电子邮件进入垃圾邮件文件夹,遵循以下最佳实践至关重要:
使用信誉良好的 SMTP 提供商:
使用 Gmail、SendGrid 或 Mailgun 等受信任的 SMTP 提供商可以提高送达率,因为它们不太可能被标记为垃圾邮件。
验证您的域名:
为您的邮件设置 SPF(发件人策略框架)、DKIM(域名密钥识别邮件)和 DMARC(基于域的邮件身份验证、报告和一致性)记录域来验证您的电子邮件的合法性。
避免垃圾内容:
确保您的电子邮件内容干净且未被标记为垃圾邮件。避免过度使用全部大写、垃圾词(如“免费”、“获胜者”等)以及过多的链接。
使用纯文本替代:
始终包含电子邮件的纯文本版本 ($mail->AltBody)。一些电子邮件客户端将纯 HTML 电子邮件标记为可疑。
避免使用免费电子邮件服务作为发件人:
使用您自己域中的专业电子邮件地址,而不是 Gmail、Yahoo 等免费服务,以避免被标记为垃圾邮件。
限制每封电子邮件的收件人数量:
如果发送批量电子邮件,请使用适当的批量电子邮件服务,而不是在一封邮件中发送给多个收件人,以避免被标记为垃圾邮件。
将send_email.php文件上传到您的服务器并在浏览器中或通过命令行运行它:
php send_email.php
如果配置正确,您将看到消息:
Message has been sent
If there’s an error, it will display:
Message could not be sent. Mailer Error: {Error Message}
By using PHPMailer and a proper SMTP setup, you can ensure your emails are sent reliably and with a lower chance of landing in the spam folder. Here's a quick summary:
This approach ensures better deliverability and reduces the chances of your emails being marked as spam.
Feel free to follow me:
以上是使用 PHP 安全地传送电子邮件:使用 SMTP 发送无垃圾邮件的指南的详细内容。更多信息请关注PHP中文网其他相关文章!