我正在制作一个允许用户向他们的朋友发送电子邮件的表单。表单将包含以下字段:
理想情况下,电子邮件标题中的“来自”字段 将是用户输入的“来自电子邮件”地址,以便收件人识别发件人。
但我认为,当用户输入“来自电子邮件”地址时,在标题中设置“来自”字段将无法SPF验证并增加电子邮件被标记为垃圾邮件的可能性。
什么是最佳做法:
答案 0 :(得分:6)
如果您的域名是example.com,则来自表单的外发电子邮件中的FROM标头必须类似于info@example.com或noreply@example.com
将REPLY-TO标题设置为"来自"您的用户在表单上输入的地址。
让收件人识别&#34; FROM&#34;地址,您可以将发件人姓名放在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);