STARTTLS Fehler beim senden der E-Mail mit Indy in Delphi XE
Ich versuche zum senden von E-Mail von meiner Anwendung mit dem folgenden code:
Var
MailMessage : TIdMessage;
SMTP : TIdSMTP
.
.
.
//setup SMTP
SMTP.Host := 'smtp.gmail.com';
SMTP.Port := 25;
//setup mail message
MailMessage.From.Address := '[email protected]';
MailMessage.Recipients.EMailAddresses := '[email protected]';
MailMessage.Subject := 'Test';
MailMessage.Body.Text := 'Hello, It is Just for test';
SMTP.Connect;
SMTP.Send(MailMessage);
Wenn ich es laufen lasse, es generiert den folgenden Fehler
**ERROR: Must issue a STARTTLS command first. i29sm34080394wbp.22**
Wie kann ich dieses Problem lösen?
Sie sollten vertraut machen mit STARTTLS: en.wikipedia.org/wiki/STARTTLS und fastmail.fm/help/technology_ssl_vs_tls_starttls.html sind beide hilfsbereit.
danke, werde ich tun
danke, werde ich tun
InformationsquelleAutor ae1080 | 2011-10-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Indem Sie die Antworten zusammen können Sie den folgenden code. Vergessen Sie nicht, wie
Nathaniel Woolls
erwähnthere
um dielibeay32.dll
undssleay32.dll
Bibliotheken zum Beispiel vonhere
zu Ihrem Projekt-Ordner oder auf einem Pfad von derfolgende Orte
.Hoffe, dass dies helfen
SSLHandler.Destination
,SSLHandler.Host
, undSSLHandler.Port
Eigenschaften. Diese Eigenschaften werden automatisch ausgefüllt, indemConnect()
.vielen Dank, es funktioniert gut
InformationsquelleAutor TLama
smtp.gmail.com
zwingt Sie dazu, verwenden Sie eine verschlüsselte Verbindung mit STARTTLS.Indy 9 nicht unterstützt STARTTLS direkt, aber indy 10 nicht.
In Indy 10, bevor Sie eine Verbindung zum server, ordnen Sie ein
SSL-aktiviert IOHandler, wie
TIdSSLIOHandlerSocketOpenSSL
,Finden Sie unter: http://www.indyproject.org/docsite/html/frames.html?frmname=topic&frmfile=TIdSSLIOHandlerSocketOpenSSL.html
Fügen Sie den folgenden code:
Wenn Sie nur SMTP an einen nicht-verschlüsselten SMTP-handler (ISP ' s SMTP) werden Sie nicht unter diesem problem leiden.
OnGetPassword
Ereignis, das nur gilt, wenn ein Passwort-geschützt, SSL-Zertifikat verwendet wird (was nicht der Fall mit GMail).danke für den Hinweis, es ist schon eine Weile her, seit ich verwendet, Indy.
Ist es möglich, sendet STARTTLS manuell mit Indy 8? Ich habe eine app, die verwendet Indy 8. Kann ich senden E-Mails mit SSL-Verbindung, aber nur wenn der server eine implizite TLS. Ich möchte hinzufügen, die Unterstützung von STARTTLS. Wenn es möglich ist, bitte sagen Sie mir, wie
InformationsquelleAutor Johan
Der Fehler ist, da Gmail mit SSL und TLS. Sie gehen zu müssen, Indy SSL-IO-handler sowie die ordnungsgemäße OpenSSL-DLL ' s für Ihre Indy-version.
Gibt es eine Anleitung auf die erste dieser arbeiten hier.
InformationsquelleAutor Nathanial Woolls