我需要一组邮件标题附加到PHP中的mail()
函数。我发送带有HTML的电子邮件,有时像Yahoo Mail这样的服务会阻止它们。因此,我需要确保我至少提供正确的标题。
// To send HTML mail, the 'Content-type' header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'From: MyCompany <welcome@mycompany.com>' . "\r\n";
我还有什么要补充的吗?
答案 0 :(得分:28)
$headers = "From: testsite < mail@testsite.com >\n";
$headers .= "Cc: testsite < mail@testsite.com >\n";
$headers .= "X-Sender: testsite < mail@testsite.com >\n";
$headers .= 'X-Mailer: PHP/' . phpversion();
$headers .= "X-Priority: 1\n"; // Urgent message!
$headers .= "Return-Path: mail@testsite.com\n"; // Return path for errors
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
答案 1 :(得分:3)
大多数MUA都插入了很多额外的标题;但是,这是你可以期待的最低限度。
To:
Subject:
Date:
MIME-Version:
Content-type:
如果您使用HTML,那么您可能应该使用多部分消息 - 但这并非绝对必要。
答案 2 :(得分:1)
邮件真的来自'mycompany.com'吗?我遇到了一些邮件服务阻塞的问题,如果它不是真的来自邮件所说的SMTP服务器。
对我而言,解决这个问题的方法是将from发送到automail@mydomainnaim.com并添加reply-to
,即使用我的系统发送邮件的人。
答案 3 :(得分:1)
在定义发件人是否是可能的垃圾邮件发件人时,许多服务会检查发件人的域是否像拨号用户。
来自维基百科的引用:
一种电子邮件反垃圾邮件技术: 检查rDNS中的域名 看他们是否可能来自拨号 用户,动态分配的地址, 或其他廉价的互联网 服务。拥有此类IP地址的所有者 通常为它们分配通用rDNS 这样的名字 “1-2-3-4-dynamic-ip.example.com。” 绝大多数,但没有 意味着所有来自的电子邮件 这些电脑是垃圾邮件,很多 垃圾邮件过滤器拒绝发送电子邮件 rDNS名称。
答案 4 :(得分:0)
IMF和MIME的RFC定义了最小的标头集,因此这是一个很好的起点。
对于IMF,请查看此处:http://tools.ietf.org/html/rfc5322#section-3.6
对于MIME,请查看此处:http://tools.ietf.org/html/rfc2045#section-3
答案 5 :(得分:-1)
以下链接可用于将强制标题定义为:
<强>日期:强> 消息的发起/写入日期。
发件人:强> “负责”消息的人。