Pregunta

Me estoy haciendo rechazos interesantes de mi servidor de correo de los clientes cuando se envía un correo electrónico con el componente tidMessage de Indy-10 diciendo:

550 Rechazado: Mensaje no contiene un identificador del mensaje

Me sale este incluso cuando se utiliza propia aplicación de demostración de Indy

http://www.indyproject.org/DemoDownloads/Indy_10_MailClient.zip

¿qué hago para solucionar este problema. gracias!

¿Fue útil?

Solución

TIdMessage en Indy 10 omite intencionadamente encabezado 'Message-Id' cuando se codifica un correo electrónico a un enchufe o TStream. Usted tendrá que utilizar la propiedad TIdMessage.ExtraHeaders, por ejemplo:

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

EDIT:

Como seguimiento de este - TIdMessage ahora ha sido actualizada con los cambios lógicos en la forma en que maneja el "Message-ID" y encabezados "In-Reply-To":

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

La propiedad TIdMessage.MsgId ahora genera un "Message-ID" de cabecera, independientemente de si el correo electrónico se está guardando, por streaming o transmitida. Así que no es necesario utilizar la propiedad ExtraHeaders más.

Otros consejos

Funciona con Indy9, tal vez las cosas no han cambiado demasiado en 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top