Autor |
Beitrag |
mats
Beiträge: 49
|
Verfasst: Fr 27.07.18 08:31
Hallo,
ich möchte in ein Programm einen eMail-Client integrieren und da stellt sich die Frage: Mit Indy-Tools oder Synapse? (ich hab noch mit keinem gearbeitet!)
Es soll kein Anhang mitgeschickt werden, und der User hat mit dem Modul nichts zu tun (keine Eingaben), heißt: die Mails sollen im Hintergrund versandt werden, und es werden KEINE eMails empfangen. Welche der beiden Komponenten eignet sich besser (für mich kürzer, einfacher, übersichtlicher) für mein Vorhaben.
Hat jemand schon mit beiden gearbeitet? Welche wird allgemein bevorzugt?
In gespannter Erwartung
mats
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 27.07.18 08:40
Synapse und ICS unterstützen im Gegensatz zu Indy nonblocking sockets. Ob das auch für Mails gilt, weiß ich nicht. Das hat den Vorteil, dass Anfragen nicht blockieren, wenn der Server nicht erreichbar ist usw., aber einfacher dürfte Indy sein.
|
|
mats
Beiträge: 49
|
Verfasst: Fr 27.07.18 19:16
Hallo,
ich habe es mit Indy und Synapse probiert und es hat nicht funktioniert. Bei Indy bekomme ich die Exception: 'Socket Error #10013 Access denied' und mit Synapse haut der Login nicht hin. Wobei nur ein True o. False zurückkommt. Die Firewall ist für die Programme offen.
Ich habe mir vor ein paar Tagen die Delphi 10.2 Community Version runtergeladen. Vielleicht macht es Sinn zu Delphi zu wechseln?
Hat jemand noch eine zündende Idee?
mats
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.07.18 23:35
Moin!
Die Zeiten, in denen man "einfach so" eine E-Mail versenden konnte, sind (zum Glück!) schon lange vorbei. Wenn du heute nicht mit SSL und Authentifizierung beim SMTP-Server aufläufst, nimmt der keine E-Mails von dir an. Die genannte Fehlermeldung weist genau darauf hin.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
mats
Beiträge: 49
|
Verfasst: Sa 28.07.18 08:38
Hallo,
bei Synapse ist FullSSL auf true, und wird auch so zurückgegeben. Als Mailserver habe ich mail.gmx.net mit Port 587 eingetragen, so wie es GMX will. Soweit funktioniert alles - alles true, nur nicht der Login und das Senden danach.
Keine Idee mehr
mats
|
|
Sinspin
Beiträge: 1332
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: Sa 28.07.18 12:07
Hey. Mit GMX habe ich seit Jahren nicht mehr probiert ob es noch geht. Ich habe fuers testen ein gmail Account. Firebird geht, und auch Zugriff via Programm aber ich verwende was nicht ganz guestiges kommerzielles. Aus meiner Sicht aktuell das Beste was es gibt, nein ich bekomme keinen Rabatt von denen . Wenn Du Geld ausgeben willst/kannst dann schau mal nach /NSoftware.
Ich denke das GMX genauso geht wie alle anderen Mail Anbieter. Kannst ja mal mit Firebird testen.
Und, die Delphi Community Version, auch wenn sie 10 Jahre zu spaet kommt, ist vom Umfang her wie Delphi Professional, also genau was Du brauchst.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
jaenicke
Beiträge: 19285
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 28.07.18 22:05
mats hat folgendes geschrieben : | bei Synapse ist FullSSL auf true, und wird auch so zurückgegeben. Als Mailserver habe ich mail.gmx.net mit Port 587 eingetragen, so wie es GMX will. Soweit funktioniert alles - alles true, nur nicht der Login und das Senden danach. |
Welche SSL-DLLs verwendest du denn?
Mit Delphi 10.2 funktioniert es mit GMX und Indy mit SSL problemlos:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| uses IdSMTP, IdMessage, IdEMailAddress, IdBaseComponent, IdComponent, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdExplicitTLSClientServerBase;
procedure TForm14.Button1Click(Sender: TObject); var SMTP: TIdSMTP; NewMessage: TIdMessage; Recipient: TIdEMailAddressItem; IndySSLIOHandler: TIdSSLIOHandlerSocketOpenSSL; begin NewMessage := TIdMessage.Create(NIL); try Recipient := NewMessage.Recipients.Add; Recipient.Name := 'Sebastian Jänicke'; Recipient.Address := '---@hotmail.com'; NewMessage.From.Name := 'Sebastian Jänicke'; NewMessage.From.Address := '---@gmx.de'; NewMessage.Body.Text := 'Das ist eine kleine Testnachricht.'; NewMessage.Subject := 'Das ist der Betreff'; IndySSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); try IndySSLIOHandler.SSLOptions.Method := sslvTLSv1; IndySSLIOHandler.SSLOptions.Mode := sslmClient; SMTP := TIdSMTP.Create(nil); try SMTP.IOHandler := IndySSLIOHandler; SMTP.Host := 'mail.gmx.net'; SMTP.Port := 587; SMTP.AuthType := satDefault; SMTP.Username := '---@gmx.de'; SMTP.Password := '---'; SMTP.UseTLS := utUseExplicitTLS; SMTP.Connect; try SMTP.Send(NewMessage); finally SMTP.Disconnect; end; finally SMTP.Free; end; finally IndySSLIOHandler.Free; end; finally NewMessage.Free; end; end; |
An den markierten Stellen musst du natürlich die Zugangs- und Empfängerdaten eintragen.
Die DLLs habe ich von hier heruntergeladen:
indy.fulgan.com/SSL/ (einfach die aktuelle Version, z.B. openssl-1.0.2o-i386-win32.zip)
|
|
mats
Beiträge: 49
|
Verfasst: So 29.07.18 08:30
Hallo zusammen,
an Sinspin: die NSoftware seh ich mir auf alle Fälle an, auch wenn das Geld immer knapp ist.
Die Community Version von Delphi ist zwar umsonst, wie die abgespeckte Starterversion, doch (und es gibt immer einen Haken) gilt die Lizenz nur für 367 Tage. So wurde es nach der Installation angezeigt. Mal sehen was bis dahin passiert.
an jaenicke: den Quelltest werd ich heute gleich ausprobieren. So vom drübersehen ist mir aufgefallen, das einige Stellen doch anders sind als bei Lazarus.
Bei Lazarus kann man Programmquellcode von Delphi importieren. Da ich mein Programm in Lazarus begonnen habe, stellt sich die Frage: Kann ich diesen Sourcecode, wenn er läuft, nach Lazarus bzw. Free Pascal portieren? Denn, das größte Problem kommt erst noch (mit SOAP ein Verbindung zu einem MySQL-Server), und ich weiß nicht ob/wie ich es in Delphi oder Laz hinbekomme.
mats
|
|
Tankard
Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: So 29.07.18 15:08
mats hat folgendes geschrieben : | Denn, das größte Problem kommt erst noch (mit SOAP ein Verbindung zu einem MySQL-Server), und ich weiß nicht ob/wie ich es in Delphi oder Laz hinbekomme.
mats |
Hallo,
schau dir dafür mal "mORMot" an. Das findest du unter: github.com/synopse/mORMot
|
|
|