Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy IdMessage und Message ID? (https://www.delphipraxis.net/119989-indy-idmessage-und-message-id.html)

Schucki 4. Sep 2008 02:25


Indy IdMessage und Message ID?
 
Hallo,

ich möchte gerne zu meinen eMails eine MSG-ID generieren, das klappt auch alles doch wenn ich die IdMsg als File auf die Platte speichern möchte, finde ich keinen Eintrag. Warum nicht, habe ich einen Schritt vergessen?

var genMsg = IdMessage;


genMsg.Clear;
genMsg.Date:=Now;
genMsg.From.Address:=ADR_FROM;
genMsg.Recipients.EMailAddresses:=ADR_TO;
genMsg.Subject:='Testmail...';
genMsg.UID:='wh'+FormatDateTime('yymmddssnnhh', now)+'A3F4E4local';
genMsg.Body.Text:=memWelcome.Text;
genMsg.Body.Text:=memMail.Text;
genMsg.SaveToFile('out.txt');


out.txt Inhalt...

From: "test@localhost.net" <test@localhost.net>
Subject: Tstmail...
To: user@localhost.net
Date: Thu, 4 Sep 2008 03:17:32 +0200

Hello Test hier und da...
.





Ich dachte ich bekomme auch den Eintrag:

Message-ID: <>


Hat jemand einen Tip? :gruebel:

Gruß Frank

SirThornberry 4. Sep 2008 06:18

Re: Indy IdMessage und Message ID?
 
Zitat:

...finde ich keinen Eintrag
Was verstehst du unter Eintrag und wo findest du keinen Eintrag wo du aber einen erwartest? Oder meinst du das du keine Datei findest? Das könnte daran liegen das du nur "out.txt" angibst aber keinen Pfad dazu. Das heißt die Datei wird schon irgendwo liegen nur ist eben nicht genau bestimmt wo weil dies von deinem Arbeitsverzeichnis abhängig ist was sich schnell mal ändern kann. Wenn du mit eingeschränkten Rechten arbeitest kann es auch sein du findest die Datei gar nicht weil du im Windows-Verzeichnis (welches oftmals das Arbeitsverzeichnis ist) keine Schreibrechte hast.

Schucki 4. Sep 2008 09:55

Re: Indy IdMessage und Message ID?
 
Also ich dachte ich könnte die IdMessage Komponente zum erstellen von eMails verwenden.
In der eMail also wenn man sie als Datei speichert sollten dann die verschiedenen Einträge auftauchen.

Doch das passiert nicht bei allem.

genMsg.Date:=Now;
erzeugt die Zeile:
Date: Thu, 4 Sep 2008 03:17:32 +0200

genMsg.From.Address:=ADR_FROM;
erzeugt die Zeile:
From: "test@localhost.net" <test@localhost.net>

genMsg.Recipients.EMailAddresses:=ADR_TO;
erzeugt die Zeile:
To: user@localhost.net

genMsg.Subject:='Testmail...';
erzeugt die Zeile:
Subject: Tstmail...

Nur diese hier funktioniert so nicht. :-(
genMsg.UID:='wh'+FormatDateTime('yymmddssnnhh', now)+'A3F4E4local';
Sollte eine Zeile wie:

Message-ID: <wh11223344556677A3F4E4local>
Erzeugen aber Fehlanzeige... :-( :-(



Gruß Frank

remo.mueller 11. Sep 2008 17:04

Re: Indy IdMessage und Message ID?
 
Die "Message-ID" wird von IdMessage nicht selbst erzeugt. Man muß es einfach selbst machen.
Falls man jedoch eine Nachricht an einen Mailserver sendet und es ist der Header
"Message-ID" nicht vorhanden, dann wird dieser durch den Server erstellt.

Hier mein Beispiel:

Delphi-Quellcode:
Var
    IdMessage : TIdMessage;
    MID: String;
begin

MID:='wh'+FormatDateTime('yymmddssnnhh', now)+'A3F4E4@local';
IdMessage := TIdMessage.Create(Nil);
IdMessage.Date := now;
idMessage.From.Name:='Absender';
idMessage.From.Address:='user@example.com';
idMessage.Recipients.EMailAddresses:='test1@example.com';
idMessage.Subject:='Testnachricht';
idMessage.Body.Add('TEXT_1');
idMessage.Body.Add('Text_2');
idMessage.AddHeader('Message-ID: <' + MID + '>');
idMessage.SaveToFile('C:\mail.txt');
end;
Am Besten man erzeugt gleich ein gültige Message-ID, welche auch ein "@" enthalten sollte.
Ich selbst verwende Units aus Indy ungern und setze lieber auf Synapse.
Siehe: http://synapse.ararat.cz Und hier die Unit "mimemess".


MfG
Remo


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz