Отправка почты, но нет идентификатора сообщений

StackOverflow https://stackoverflow.com/questions/4496821

  •  12-10-2019
  •  | 
  •  

Вопрос

Я получаю интересные отзывы от почтового сервера моих клиентов при отправке почты с компонентом Tidmessage Indy-10 Скажу:

550 Отклонено: сообщение не содержит идентификатор сообщений

Я получаю это даже при использовании собственного демонстрационного приложения Indy

http://www.indyproject.org/demodownloads/indy_10_mailclient.zip

Что мне сделать, чтобы исправить это. Благодарность!

Это было полезно?

Решение

Tidmessage в Indy 10 намеренно опускает заголовок «Сообщения» при кодировании электронного письма в розетку или tstream. Вам придется использовать собственность tidmessage.extraheaders, например:

IdMessage1.MsgId := ...';
IdMessage.ExtraHeaders.Values['Message-Id'] := IdMessage1.MsgId;

РЕДАКТИРОВАТЬ:

Как продолжение этого - TIdMessage теперь обновляется с логическими изменениями в том, как он обрабатывает заголовки «Сообщения» и «In-Reply-To»:

http://indyproject.org/sockets/blogs/changelog/20160912.aspx

А TIdMessage.MsgId Свойство теперь генерирует заголовок «идентификатора сообщений» независимо от того, сохраняется ли электронное письмо, транслируется или передается. Поэтому вам не нужно использовать ExtraHeaders собственность больше.

Другие советы

Это работает с Indy9, может быть, все не слишком много в 10:

    procedure AddMsgID(AMsg: TIdMessage);
    var
      id: AnsiString;
    begin
      id := GenerateUniqueMsgID;
      AMsg.MsgId := id;
      AMsg.AddHeader('Message-ID=' + id);
      // AMsg.ExtraHeaders.Values['Message-ID'] := id;
    end; // AddMsgID
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top