2

我在向 yahoo.com 电子邮件地址发送电子邮件时遇到问题,我从我的 php 脚本发送的邮件对于我发送到的所有其他域都非常有效,除了我们的一位坚持保留她的雅虎电子邮件的用户。

这是我的标题

    $headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "Date: $date";
$headers[] = "From: 'DSAC Events' <$from>";
$headers[] = "Reply-To:  <$replyto>"; 
$headers[] = "Subject: {$subject}";
$headers[] = "Return-Path: <$from>";
$headers[] = "X-Priority: 3";//1 = High, 3 = Normal, 5 = Low
$headers[] = "X-Mailer: PHP/" . phpversion();

mail($to, $subject, $msg, implode("\r\n", $headers));

我已经阅读了很多关于有同样问题的人的帖子,我尝试添加消息 ID 和返回路径,我已经添加了日期:阅读后可能是问题所在,其他各种事情都无济于事。

这是退回邮件源的示例。

Return-path: <>
Envelope-to: d11dsa@zeus1.easy-internet.co.uk
Delivery-date: Sat, 08 Nov 2014 14:41:32 +0000
Received: from mailnull by zeus1.easy-internet.co.uk with local (Exim 4.82)
    id 1Xn7Cm-001cxb-8a
    for d11dsa@zeus1.easy-internet.co.uk; Sat, 08 Nov 2014 14:41:32 +0000
X-Failed-Recipients: user@yahoo.com
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@zeus1.easy-internet.co.uk>
To: d11dsa@zeus1.easy-internet.co.uk
Subject: Mail delivery failed: returning message to sender
Message-Id: <E1Xn7Cm-001cxb-8a@zeus1.easy-internet.co.uk>
Date: Sat, 08 Nov 2014 14:41:32 +0000

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  user@yahoo.com
    SMTP error from remote mail server after end of data:
    host mta6.am0.yahoodns.net [63.250.192.46]: 554 Message not allowed - Headers are not RFC compliant[291]

------ This is a copy of the message, including all the headers. ------

Return-path: <d11dsa@zeus1.easy-internet.co.uk>
Received: from d11dsa by zeus1.easy-internet.co.uk with local (Exim 4.82)
    (envelope-from <d11dsa@zeus1.easy-internet.co.uk>)
    id 1Xn7Ci-001cl4-9S
    for user@yahoo.com; Sat, 08 Nov 2014 14:41:29 +0000
To: user@yahoo.com
Subject: 
X-PHP-Script: www.dsa.co.uk/eventmail.php for 2.218.47.72
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
Date: Sat, 08 Nov 2014 14:41:28 +0000
From: DSACEvents <events@dsa.co.uk>
Reply-To:  <person@live.co.uk>
Subject: 
X-Priority: 3
4

3 回答 3

4

感谢您的回复,您是对的。这就是我最终得到的完美效果。

    function generateMessageID()
{
  return sprintf(
    "<%s.%s@%s>",
    base_convert(microtime(), 10, 36),
    base_convert(bin2hex(openssl_random_pseudo_bytes(8)), 16, 36),
    $_SERVER['SERVER_NAME']
  );
}

        $headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "Mesaage-id: " .generateMessageID();
$headers[] = "From: 'DSAC Events' <$from>";
$headers[] = "Reply-To: $Arranger <$replyto>"; 
$headers[] = "Date: $date";
$headers[] = "Return-Path: <$from>";
$headers[] = "X-Priority: 3";//1 = High, 3 = Normal, 5 = Low
$headers[] = "X-Mailer: PHP/" . phpversion();


mail($to, $subject, $message, implode("\r\n", $headers));
于 2015-05-08T15:54:45.910 回答
1

根据错误消息,雅虎服务器似乎正在拒绝来自您的域 SMTP 服务器的电子邮件。这可能是由多种原因引起的,包括以下原因:

  • 如果您的程序发送的消息中没有Message-ID或标题Date

  • 如果附件不遵循该文件类型的确切结构,这些也被视为可疑并因此被隔离,以防它们构成任何形式的威胁。

  • 如果邮件有 2 个主题,则邮件可能会被拒绝。

于 2015-05-07T13:39:01.090 回答
-1

我和雅虎有同样的问题。只有双重“主题”是问题所在。干得好,对我来说很好。

于 2020-05-24T14:31:09.527 回答