PHP电子邮件中"from"标题字段的最佳实践,以防止标记为垃圾邮件

Mik*_*Eng 2 php email spam-prevention

我正在制作一个表格,允许用户向他们的朋友发送电子邮件.表单将包含以下字段:

  • 来自电子邮件
  • 发邮件
  • 学科
  • 身体

理想情况下,电子邮件标题中的"来自"字段将是用户输入的"来自电子邮件"地址,以便收件人识别发件人.

但我认为,当用户输入"来自电子邮件"地址时,在标题中设置"起始"字段将无法通过SPF验证并增加电子邮件被标记为垃圾邮件的可能性.

什么是最佳做法:

  1. 允许电子邮件显示(发送给收件人)来自发件人的"来自电子邮件"
  2. 降低电子邮件被标记为垃圾邮件的可能性.

快速抽查,

  • 纽约时报"电子邮件文章"功能将标题中的"从"字段设置为发件人的电子邮件地址,最终在我的Yahoo收件箱中.
  • AddThis将标题中的"from"字段设置为发件人的电子邮件地址,最后放在我的Yahoo垃圾邮件文件夹中.
  • Delicious将标题中的"from"字段设置为"Delicious",最终出现在我的Yahoo收件箱中.

JV-*_*JV- 6

如果您的域名是example.com,则来自表单的外发电子邮件中的FROM标头必须类似于info@example.com或noreply@example.com

将REPLY-TO标头设置为用户在表单上输入的"from"地址.

要使收件人能够识别"FROM"地址,您可以将发件人姓名放在FROM标题中,这样当收件人看到电子邮件进来时,它会说出某些内容. "John Smith <noreply@example.com>"

由于您使用的是PHP,我建议您查看Swiftmailer.除了提供用于构建和格式化电子邮件的精彩方法之外,它还可以帮助您避免许多常见的标题问题.

官方Swiftmailer网站:http://swiftmailer.org/

您的代码可以像下面这样简单:

$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance()
    ->setSubject('This is the subject of your message')
    ->setFrom(array('noreply@example.com' => 'John Smith'))
    ->setReplyTo(array('john.smith@gmail.com' => 'John Smith'))
    ->setTo(array('recipient@example.com'))
    ->setBody('The body of your email goes here.');

$mailer->send($message);
Run Code Online (Sandbox Code Playgroud)