以下是“来自” header incorect?

    // 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)){

我从邮件服务器收到错误。它显示“Mail from error:Syntax error”。

感谢大家的帮助。

更新

我已经将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";
有帮助吗?

解决方案

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

From: mail@mailmaster.com

其他提示

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

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

Content-Type: multipart/alternative;
    boundary="10.254.26.130.1.1364.1241389770.060.1"
From: User1 <user1@domain1.com>
To: User2 <user2@domain1.com>,User3 <user3@domain.com>
Subject: Actual subject
MIME-Version: 1.0


--10.254.26.130.1.1364.1241389770.060.1
Content-Type: text/plain;
    charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

actual text content starting here...

同样,在不知道所有内容/标题的情况下,很难说,但我猜测a)你在内容之前遗漏了尾随的CRLF,或者b)其中一个早期的标题错过了它的CRLF。 / p>

道歉,如果这会让你走向一个错误的方向。 :)

From: "User1" <user1@domain1.com>

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

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

        $to=$email_id;
        $headers = "From: " . strip_tags($userEmail) . "\r\n";
        $headers .= "Reply-To: ". strip_tags($userEmail) . "\r\n";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top