完整的邮件标题

时间:2009-02-19 16:48:47

标签: php email

我需要一组邮件标题附加到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";  

我还有什么要补充的吗?

6 个答案:

答案 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)

以下链接可用于将强制标题定义为:

  • <强>日期: 消息的发起/写入日期。

  • 发件人: “负责”消息的人。