Я использую Swift Mailer для проверки отсканированных сообщений. Я создал одну отдельную учетную запись для сообщений об отказе, однако, когда я устанавливаю путь возврата, он не позволяет сообщению отказов отправлять эту учетную запись. Это нормально или это ошибка кода?
$verp = 'bounces-' . str_replace('@', '=', $row['ReplyTo']) . '@gmail.com'; $message = Swift_Message::newInstance() ->setSubject($row['Subject']) ->setFrom(array($row['ReplyTo'] => $row['FromName'])) ->setReturnPath($verp) ->setBody($html, 'text/html') ->addPart($txt, 'text/plain');
Я сейчас использую VERP, кажется, что нужно найти ошибку доставки? Но не для отправки сообщения в учетную запись bounce?
Да, это нормально. При отправке электронной почты через SMTP-серверы Gmail это приведет к тому, что возвращаемый путь станет учетной записью, которую вы отправляете.
Ваше единственное решение – поиск провайдера, который позволяет вам установить обратный путь.
Это не проблема Gmail, это требование спецификации SMTP, как определено в RFC 5321, раздел 4.4 :
Система SMTP, отправляющая сообщения, НЕ ДОЛЖНА отправить сообщение, которое уже содержит поле заголовка Return-path.
В нем также говорится, что, хотя системы SMTP не должны вообще проверять содержимое сообщений (т. Е. Не смотрят на заголовки), шлюз из какого-либо другого контекста в SMTP ДОЛЖЕН удалить любой заголовок пути возврата. Короче говоря, если вы добавляете заголовок обратного пути самостоятельно, вы делаете это неправильно.
Заголовок заголовка возвращаемого пути, который вы видите в полученном сообщении, создается получателем, а не отправителем, и получен из команды SMTP MAIL FROM
используемой для доставки сообщения. Этот адрес не должен иметь ничего общего с заголовком From From в сообщении и обозначает, куда следует отправлять сообщение в случае сбоя доставки, то есть именно для чего вы хотите получить адрес VERP.
Я не знаю о SwiftMailer, но в PHPMailer вы можете установить значение отправителя конверта SMTP, установив свойство Sender
, и получатель преобразует его в заголовок сообщения в обратном пути при приеме.