![]() |
Email mit JclSimpleSendMail
Ich nutze JclSimpleSendMail zum Erstellen einer Email in Outlook:
function JclSimpleSendMail(const ARecipient, AName, ASubject, ABody: AnsiString; const AAttachment: TFileName; AShowDialog: Boolean = True; AParentWND: THandle = 0; const AProfileName: AnsiString = ''; const APassword: AnsiString = ''): Boolean; Aufruf durch: JclSimpleSendMail(emailATN,'','Nachricht von XYZ',emailBody,'',True,0,'',''); Diese wird korrekt im Outlook angezeigt (fertig zum Versenden) - soweit so gut. ABER: wenn ich nun aus meinem Programm heraus mehrere Emailadressen übergebe (ich "addiere" dazu einfach die Strings der Emailadressen und platziere dazwischen ein Semikolon (emailATN:=emailATN+';'+emailTN;) -> also z.B. ist ARecipient bzw emailATN dann "a@b.de; b@c.com"). Das Problem: habe ich nur eine Emailadresse, dann versendet Outlook das problemlos, habe ich aber zwei oder mehr Emailadressen, dann "interpretiert" Outlook das als eine Emailadresse und der Versand funktioniert nicht (bzw kommt vom Provider mit der Fehlermeldung zurück, dass die Emailadresse nicht ok sei). Kopiere ich den gesamten String der Empfänger in den Editor und von da wieder zurück in Outlook, dann werden die Empfänger als einzelnen Empfänger angesehen/verarbeitet und das Versenden funktioniert. Was läuft da falsch??? Hartmut |
AW: Email mit JclSimpleSendMail
Siehe Doku:
![]() "JclSimpleSendMail sends an e-mail with optionally an attachment to 1 recipient." Intern wird, wie du leicht im Quelltext sehen kannst,
Delphi-Quellcode:
benutzt. Dort könnte man den String natürlich splitten und mehrere entsprechend einzeln hinzufügen. Das ist aktuell aber nicht so. Meiner Meinung nach spricht da aber auch nichts dagegen. Du könntest es also ändern und einen entsprechenden Pull Request machen.
AJclEmail.Recipients.Add
Ansonsten heißt das nicht umsonst simple. Wenn du mehr möchtest, solltest du die dahinter verwendeten Mailfunktionen direkt nutzen. Wie das geht siehst du im Quelltext (Funktion SimpleSendHelper). Die Funktion umfasst auch nur wenige Zeilen und die kannst du auch schlicht kopieren und anpassen. |
AW: Email mit JclSimpleSendMail
Tja, immer diese Feinheiten...danke für die Info, Sebastian! Das mit dem "to 1 recipient" hatte ich glatt übersehen.
ABER: ich Frage mich schon, warum Outlook das anders "interpretiert", denn es wird ja eigentlich nur ein String übergeben (der dann inhaltlich aus mehreren Emailadressen besteht). Dann werde ich mir den Quelltext mal näher anschauen (müssen). Oder gibt es eine fertige/andere Alternative? Hartmut |
AW: Email mit JclSimpleSendMail
Zitat:
Zitat:
|
AW: Email mit JclSimpleSendMail
Es ist in der Tat recht einfach, von "Simple" auf ein bisschen mehr umzustellen - ich habe in den Examples von JCL folgendes Beispiel gefunden:
1 SimpleMapiMail := TJclEmail.Create; // Creating message using TJclEmail object, it is more flexible, but you have // to create an instance (SimpleMapiMail variable in this example) of the class 2 SimpleMapiMail.Clear; 3 SimpleMapiMail.Recipients.Add(AnsiString(ToAddress Edit.Text), AnsiString(ToNameEdit.Text)); 4 SimpleMapiMail.Subject := AnsiString(SubjectEdit.Text); 5 SimpleMapiMail.Body := AnsiString(BodyEdit.Text); 6 SimpleMapiMail.HtmlBody := HtmlCheckBox.Checked; 7 SimpleMapiMail.Attachments.Add(AnsiString(OpenDial og1.FileName)); 8 SimpleMapiMail.Send(True); Ich habe mir eine kleine Routine geschrieben, die meinen Email-String in die einzelnen Emailadressen zerlegt und dann eine Schleife erzeugt, die die Zeile 3 einfach so oft hintereinander aufruft, bis alle Emailadressen eingetragen sind. Das war's! Kein Eingriff in den Quelltext notwendig. Noch ein Hinweis am Rande: in "SimpleMapiMail.Recipients.Add(ARecipient,'',rkBCC ,''); //rkTO //rkCC //rkBCC" kann an der dritten Position entschieden werden, wo die Emailadressen zugefügt werden - entweder AN(rkTO), CC(rkCC) oder BCC(rkBCC). Jetzt kämpfe ich noch mit dem Body: da bei diesem Aufruf von Outlook nicht die hinterlegte Signatur aufgerufen wird, lade ich diese im Moment aus einer Text-Datei (mit FileLoad). Lieber hätte ich aber eine formatierte RTF-Datei (oder auch HTML?). Da habe ich noch keinen Weg gefunden - wer da eine Idee hat, bitte gerne posten:-D. Oder gibt es doch einen Weg, die Outlook-Signatur zu laden? Hartmut |
AW: Email mit JclSimpleSendMail
Die Signatur habe ich jetzt aus einer html-Datei geladen und diese wird auch korrekt angezeigt (und HtmlBody wurde auf True gesetzt). Soweit so gut. Wenn ich jetzt die Email versende, dann geschiet folgendes:
1. der/die Empfänger erhalten eine leere Email (keine Sinatur, kein evtl. zusätzlich eingefügter Text) - der vom Programm eingesetzte Betreff ist aber ok 2. die Email wird nicht im Ordner "Gesendete" von Outlook gespeichert Hat jemand eine Idee, was die Ursache für die beiden Probleme sein kann??? Hartmut |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz