email — заголовки php заголовки почты & quot; 554 Сообщение не разрешено — Заголовки не соответствуют RFC [291] & quot;

У меня проблемы с отправкой электронной почты на адреса электронной почты yahoo.com, почта, которую я отправляю с моего php-скрипта, отлично работает для любого другого домена, который я отправляю, кроме одного из наших пользователей, который настаивает на сохранении своей электронной почты на Yahoo.

вот мои заголовки

    $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));

Я читал много сообщений о людях с такой же проблемой, я пытался добавить идентификатор сообщения и обратный путь, я добавил дату: после прочтения это может быть проблемой, а также различные другие вещи безрезультатно.

Вот пример отосланного почтового источника.

Return-path: <>
Envelope-to: [email protected]
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 [email protected]; Sat, 08 Nov 2014 14:41:32 +0000
X-Failed-Recipients: [email protected]
Auto-Submitted: auto-replied
From: Mail Delivery System <[email protected]>
To: [email protected]
Subject: Mail delivery failed: returning message to sender
Message-Id: <[email protected]>
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:

[email protected]
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: <[email protected]>
Received: from d11dsa by zeus1.easy-internet.co.uk with local (Exim 4.82)
(envelope-from <[email protected]>)
id 1Xn7Ci-001cl4-9S
for [email protected]; Sat, 08 Nov 2014 14:41:29 +0000
To: [email protected]
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 <[email protected]>
Reply-To:  <[email protected]>
Subject:
X-Priority: 3

1

Решение

Спасибо за ответ, и вы правы. Вот то, что я в конечном итоге закончил, который работает отлично.

    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));
4

Другие решения

Согласно сообщению об ошибке, кажется, что серверы Yahoo отклоняют электронную почту от SMTP-сервера вашего домена. Это может быть вызвано несколькими причинами, включая следующие:

  • Если нет Message-ID или же Date Заголовки в сообщениях, отправляемых вашей программой

  • Если вложения не соответствуют точной структуре этого типа файлов, они также считаются подозрительными и, следовательно, помещаются в карантин, на случай, если они представляют какую-либо форму угрозы.

  • Если сообщение имеет 2 темы, почта может быть отклонена.

0

По вопросам рекламы [email protected]