PHPMailer: заменить идентификатор сообщения по умолчанию

#php #html #nginx #smtp #phpmailer

#php #HTML #nginx #smtp #phpmailer — программа для рассылки #phpmailer

Вопрос:

Я отправляю электронные письма с помощью PHPMailer, evthg работает хорошо, но я бы установил uniq MessageId для каждого электронного письма.

Версия PHPMailer: «v5.2.16»

(загружается с помощью Composer из https://github.com/PHPMailer/PHPMailer.git )

Я нашел документацию здесь: http://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#property_MessageID

итак, вот что я попробовал :

  $mail = new PHPMailer;
 ...
 $mail->MessageID = md5('HELLO'.(idate("U")-1000000000).uniqid()).'-'.$type.'-'.$id.'@domain.com';
  

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

введите описание изображения здесь

и не мое … 🙁

Затем я попробовал sthg более простым :

  $mail->MessageID = "blablag@domain.com";
  

Результат: KO (тот же)

В документации указано, что мы можем установить MessageId, и это должна быть строка, я вообще не понимаю, почему это не работает…

Есть идеи?

Ответ №1:

Структура MessageID должна быть:

 <sometext@sometext>
  

Если у вас MessageID нет такой точной структуры — PHPMailer проигнорирует ваш MessageId и сгенерирует свой собственный MessageId.

Вы можете изменить свой код на:

 $mail->MessageID = "<" . md5('HELLO'.(idate("U")-1000000000).uniqid()).'-'.$type.'-'.$id.'@domain.com>';
  

И это должно сработать.

Комментарии:

1. да, я просмотрел правило preg_match в классе PHPMailer, и это было так, я забыл закрыть свой вопрос, глупая ошибка .. но спасибо!