Domanda

sto ottenendo rifiuti interessanti dal mio server client di posta quando si invia una e-mail con il componente tidMessage indy-10 di dire:

550 Rifiutato: messaggio non contiene un Message-ID

ottengo questo anche quando si utilizza il proprio demo app di indy

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

Che cosa devo fare per risolvere questo problema. grazie!

È stato utile?

Soluzione

TIdMessage in Indy 10 omette intenzionalmente intestazione 'Message-Id' durante la codifica una mail a una presa o TStream. Si dovrà utilizzare la proprietà TIdMessage.ExtraHeaders, ad esempio:

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

Modifica

Come un follow-up per questo - TIdMessage ora è stato aggiornato con i cambiamenti di logica nel modo in cui gestisce il "Message-ID" e intestazioni "In-Reply-To":

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

La proprietà TIdMessage.MsgId ora genera un'intestazione "Message-ID" indipendentemente dal fatto che l'e-mail viene salvato, in streaming, o trasmessi. Quindi non c'è bisogno di usare più la proprietà ExtraHeaders.

Altri suggerimenti

Funziona con Indy9, forse le cose non sono cambiate troppo in 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top