Не получать уведомления об отключении SAS от Amazon

Я настроил постфикс на моем сервере, чтобы отправлять только письма @gmail.com на адрес Amazon SES:

gmail.com          smtp:email-smtp.eu-west-1.amazonaws.com:25
*                  :

Кроме того, я настроил консоль SAS Amazon для получения Bounces и Complней на почте с использованием Amazon SNS. Проблема в том, что я не получаю отказов, если я отправляю почту на несуществующий адрес gmail.

Если вы отправляете почту с mail.google.com по адресу [email protected], я получаю:

Delivery to the following recipient failed permanently:
 [email protected]

Но при отправке с PHP script на тот же адрес postfix говорит:

E4E1A9F9CE: to=<[email protected]>, relay=email-smtp.eu-west-1.amazonaws.com[54.72.42.170]:25, delay=21, delays=0.02/0.04/11/10, dsn=2.0.0, status=sent (250 Ok 00000146d86bcc13-9fa1ac16-b1cd-476e-8398-31f406d47961-000000)

Итак, SAS Amazon принимает почту, но я не получаю уведомление об ошибке. Что может быть неправильным?

Примечание. При отправке на действительные электронные письма все работает так, как ожидалось.

Кроме того, при отправке тестовой почты с консоли AWS SES на [email protected], я немедленно уведомляюсь по электронной почте, но отправляю в тот же адрес электронной почты с PHP script через email-smtp.eu-west -1.amazonaws.com не приводит к уведомлению по электронной почте.

Ответ 1

У меня была та же проблема. В моем случае я использую библиотеку PHPMailer (https://github.com/PHPMailer/PHPMailer/), и я решил ее, указав отправителя сообщения.

/**
 * The Sender email (Return-Path) of the message.
 * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
 * @type string
 */
public $Sender = '';

Я установил его на тот же адрес, что и $From, и теперь я получаю отскоки в ожидаемом адресе.

Итак, это мой рабочий код:

$this->mail = new PHPMailer();
$this->mail->CharSet = 'utf-8';
$this->mail->From = $from_address;
$this->mail->Sender = $from_address;
$this->mail->FromName = $from_name;
$this->mail->Subject = $subject;
$this->mail->Body    = $body;
$this->mail->AltBody = $altBody;
$this->mail->addAddress($to_address, $to_name);
$this->mail->send()

Если вы используете метод setFrom в PHPMailer, он также автоматически установит Отправитель на тот же адрес.

/**
 * Set the From and FromName properties.
 * @param string $address
 * @param string $name
 * @param boolean $auto Whether to also set the Sender address, defaults to true
 * @throws phpmailerException
 * @return boolean
 */
public function setFrom($address, $name = '', $auto = true)