AW: EMail-Versand via SMTP/Mapi
Herzlichen Dank an Martin und Sir Rufo...
Ich habe es gerade mal getestet. Funktioniert! Frank |
AW: EMail-Versand via SMTP/Mapi
Hi,
vielen Dank für die Hilfe, mit Imap hatten wir es auch schonmal probiert. Hatten, bzw. haben gelegentlich das Problem, dass sich unser Programm aufhängt. Der Versand per SMTP hat geklappt, aber im Versand Ordner ist keine Kopie zu finden. Er scheint sich beim Connect aufzuhängen. Woran kann sowas liegen? Es kommt nicht immer vor. |
AW: EMail-Versand via SMTP/Mapi
IdR müsste der Connect auch einen Timeout haben. Wenn der aber default auf
Delphi-Quellcode:
steht, dann wartest du eben bis "end of days" :stupid:
INFINITE
Also TimeOut für den Connect mitgeben und entsprechend darauf reagieren. Es macht da durchaus Sinn mit entsprechenden Warteschlangen zu arbeiten, die von den beiden Diensten Sende per SMTP, Verschiebe in Versand-Ordner (laufen jeweils im eigenen Thread) abgearbeitet werden. Die Daten liegen dafür lokal auf der Platte und werden dann wenn möglich abgearbeitet. Stürzt dein Programm ab, dann wird beim nächsten Start einfach an der Stelle weitergemacht ;) |
AW: EMail-Versand via SMTP/Mapi
Nach einem Neustart des Programms habe ich keine Probleme ein EMail zu versenden.
Wenn ich aber die IMAP Daten den Bediener zuordnen will und die MailBoxen abfragen, bekomme ich danach Probleme beim Versenden -> ReadTimeOut Schon merkwürdig, dass es in der Konstellation immer auftritt.
Code:
IMAP := TIdIMAP4.Create(nil);
IMAP.Host := bedDM.MyQBedimap_server.Value; IMAP.Port := bedDM.MyQBedimap_port.Value; IMAP.Username := bedDM.MyQBedimap_account.Value; IMAP.Password := bedDM.MyQBedimap_pw.Value; //LTheSASLListEntry := TheSmtp.FSASLMechanisms.Add; //LTheSASLListEntry.SASL := TheSASLLogin; IMAP.ReadTimeout := 10000; IMAP.ConnectTimeout := 10000; if IMAP.Connect then begin IMAP.ListMailBoxes(UsersFolders); for i := 0 to UsersFolders.Count-1 do cxComboIMAPSent.Properties.Items.Add(UsersFolders[i]); IMAP.Disconnect; end; if IMAP <> nil then begin IMAP.Free; IMAP := nil; end;
Code:
IMAP := TIdIMAP4.Create(self);
IMAP.Host := ApsToolDM.MyQBedDatenimap_server.Value; IMAP.Port := ApsToolDM.MyQBedDatenimap_port.Value; IMAP.Username := ApsToolDM.MyQBedDatenimap_account.Value; IMAP.Password := ApsToolDM.MyQBedDatenimap_pw.Value; IMAP.ReadTimeout := 5000; IMAP.ConnectTimeout := 5000; if IMAP.Connect then begin Imap.AppendMsg(APsToolDM.MyQBedDatenimap_sent.Value,IdMsgSend,NIL,[mfseen]); if IMAP.Connected then IMAP.Disconnect; end; if IMAP <> nil then begin IMAP.Free; IMAP := nil; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 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