Entwickler-Ecke
Sonstiges (FPC / Lazarus) / Linux API - Indy ODER Synapse
mats - Fr 27.07.18 08:31
Titel: Indy ODER Synapse
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 - 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 - 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 - 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. :nixweiss: Die genannte Fehlermeldung weist genau darauf hin. :idea:
cu
Narses
mats - 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 - 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.
jaenicke - 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:
Delphi-Quelltext
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:
https://indy.fulgan.com/SSL/ (einfach die aktuelle Version, z.B. openssl-1.0.2o-i386-win32.zip)
mats - 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 - 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:
https://github.com/synopse/mORMot
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!