Frage

Ich bin immer interessant Ablehnungen von meinen Kunden Mail-Server, wenn eine Mail mit indy-10 tidMessage Komponente Senden sagen:

550 Abgelehnt: Nachricht keine Message-ID enthalten

Ich erhalte diese auch bei indy eigener Demo-Anwendung mit

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

Was muss ich tun, dies zu beheben. Dank!

War es hilfreich?

Lösung

TIdMessage in Indy 10 lässt absichtlich die 'Message-Id' Header bei der Kodierung eine E-Mail an eine Steckdose oder TStream. Sie werden die TIdMessage.ExtraHeaders Eigenschaft verwenden müssen, zum Beispiel:

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

EDIT:

Als Followup für diesen - TIdMessage wird nun mit der Logik Änderungen aktualisiert, wie es behandelt die "Message-ID" und "In-Reply-To" Header:

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

Die TIdMessage.MsgId Eigenschaft erzeugt nun einen „Message-ID“ Header unabhängig davon, ob die E-Mail gespeichert wird, gestreamt oder übertragen werden. Sie müssen also nicht mehr die ExtraHeaders Eigenschaft verwendet wird.

Andere Tipps

Es funktioniert mit Indy9, vielleicht haben sich die Dinge nicht zu sehr verändert 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top