0

以下“发件人”标头是否不正确?

    // 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: Mail Master <mail@mailmaster.com>' . "\r\n";
if(sendEmailNow($email, $subject, $body, $headers)){

我从我的邮件服务器收到错误。它说“来自错误的邮件:语法错误”。

感谢大家的帮助。

更新

我已将 SendEmailNow 函数剥离到下面,我得到了同样的错误:

//send an email
function sendEmailNow($email, $subject, $body, $headers){

    if (mail($email, $subject, $body, $headers)) {
      ##check email
      ##code to say email sent - compare with the number registered
      return true;
     }

     else {
      ##code to report an error 
      return false;
     }

 }

更新 2

问题解决了。我正在使用 PHP 5 的 Windows 机器上运行它。就像选择的正确答案和评论所说的一样。一些邮件服务器无法理解我之前的内容。但对我有用的是:

$headers .= 'From: mail@mailmaster.com' . "\r\n";
4

5 回答 5

4

对错误消息的 Google 搜索表明某些 SMTP 服务器无法解析您的From标头语法。您可以尝试以下语法来排除这种可能性吗?

From: mail@mailmaster.com
于 2009-05-03T23:58:13.680 回答
1

除非正文为空,否则您可能需要额外的 CRLF 来终止标头。在不知道 API 的情况下,我不能说更多。

于 2009-05-03T23:30:24.900 回答
0

不确定这是否有帮助,但这是我的 Python 应用程序中纯文本的输出标头:

内容类型:多部分/替代;
    边界="10.254.26.130.1.1364.1241389770.060.1"
发件人:用户 1 <user1@domain1.com>
收件人:User2 <user2@domain1.com>,User3 <user3@domain.com>
主题:实际主题
MIME 版本:1.0


--10.254.26.130.1.1364.1241389770.060.1
内容类型:文本/纯文本;
    charset="us-ascii"
内容传输编码:quoted-printable

从这里开始的实际文本内容...

同样,在不知道所有内容/标题的情况下很难说,但我猜要么a)您在内容之前遗漏了尾随的CRLF,要么b)早期的标题之一缺少它的CRLF。

抱歉,如果这将您带入了一个非常错误的方向。:)

于 2009-05-04T00:12:41.523 回答
0
From: "User1" <user1@domain1.com>

From 标头需要名称部分的引号。

于 2009-05-04T12:11:39.657 回答
0

如果您在表单中设置“$userEmail”变量,您可以从他们那里得到它并回复。$email_id 是您的电子邮件地址。

        $to=$email_id;
        $headers = "From: " . strip_tags($userEmail) . "\r\n";
        $headers .= "Reply-To: ". strip_tags($userEmail) . "\r\n";
于 2014-02-20T17:50:21.303 回答