![]() |
SMTP-Mail zum 100sten mal
Guten Abend Freunde,
ich stehe seit Stunden wie Ochs am Berg und bekomme nicht ein einfaches Mail-Versand zum laufen. mal bekomme ich Socket-Error 11001 , mal 11004. Bitte wenn jemand eine Idee hätte, wo ich daneben liege, wäre ewig dankbar. unit Unit2; // mit XE7. Auch mit Delphi 7 angepasst und probiert >> das gleiche Problem interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, Vcl.StdCtrls, IdMessage; type TForm2 = class(TForm) senden: TButton; IndySMTP: TIdSMTP; IndyMessage: TIdMessage; Memo1: TMemo; procedure sendenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.sendenClick(Sender: TObject); var m: TIdMessage; begin m := TIdMessage.Create(self); m.Clear; m.From.Address := 'info@xxx.de'; m.Recipients.EMailAddresses := 'info@yyyy.de; m.Subject := 'sowasvonegal'; m.Body := Memo1.Lines; // if IndySMTP.Connected then // IndySMTP.Disconnect; IndySMTP.Port := StrToInt('465'); IndySMTP.Host := 'smtp.strato.de'; IndySMTP.Username := 'info@xxx.de'; // wie Absender IndySMTP.Password := 'pwpwpwpw'; IndySMTP.AuthType := TIdSMTPAuthenticationType.satDefault; IndySMTP.Connect('1000'); IndySMTP.Authenticate; if IndySMTP.Connected then // ab hier geht nicht mehr weiter :-( try IndySMTP.Send(m); except on E: Exception do Writeln(E.Classname+ ' - ' + E.Message); end; IndySMTP.Disconnect; showmessage('Das Mail wurde erfolgreich versendet!'); if IndySMTP.Connected then IndySMTP.Disconnect; end; end. |
AW: SMTP-Mail zum 100sten mal
Hallo,
bevor jemand diesen Blob angucken muss ... benutze doch Delphi-Tags:
Code:
Du kannst deinen Beitrag 24h Stunden lang ändern, der passende Beitrag dafür ist unter deinem Beitrag :wink:
[DELPHI]
unit Unit2; // ... [/DELPHI] EDIT: First!!! :mrgreen: |
AW: SMTP-Mail zum 100sten mal
Fass den Quelltext mal in Delphi-Tags ein. Damit ist schon mal viel gewonnen auf dem Weg zur Hilfe. So ist dein Quelltext kaum lesbar.
|
AW: SMTP-Mail zum 100sten mal
Lies dir den Thread
![]() Die ist so einfach zu verwenden wie ein normaler email-Client. Probleme hier:
|
AW: SMTP-Mail zum 100sten mal
Sorry Leute,
Anfänger behalten leider, wie in diesem Fall, ihr Attribut viel zu lang. Ich habe hier gelöste Probleme eins-zu-eins übernommen: leider erfolgslos:-( (sorry wegen Blob ohne Tags)
Delphi-Quellcode:
Jetzt vermute ich wenigstens, dass irgendwo/irgendwie die Verschlüsselung hingehört.
unit Unit2; // mit XE7. Auch mit Delphi 7 angepasst und probiert >> das gleiche Problem
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, Vcl.StdCtrls, IdMessage; type TForm2 = class(TForm) senden: TButton; IndySMTP: TIdSMTP; IndyMessage: TIdMessage; Memo1: TMemo; procedure sendenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.sendenClick(Sender: TObject); var m: TIdMessage; begin m := TIdMessage.Create(self); m.Clear; m.From.Address := 'info@xxx.de'; m.Recipients.EMailAddresses := 'info@yyyy.de; m.Subject := 'sowasvonegal'; m.Body := Memo1.Lines; // if IndySMTP.Connected then // IndySMTP.Disconnect; IndySMTP.Port := StrToInt('465'); IndySMTP.Host := 'smtp.strato.de'; IndySMTP.Username := 'info@xxx.de'; // wie Absender? Aber warum doppelt? IndySMTP.Password := 'pwpwpwpw'; IndySMTP.AuthType := TIdSMTPAuthenticationType.satDefault; IndySMTP.Connect('1000'); IndySMTP.Authenticate; if IndySMTP.Connected then // ab hier geht nicht mehr weiter try IndySMTP.Send(m); except on E: Exception do Writeln(E.Classname+ ' - ' + E.Message); end; IndySMTP.Disconnect; showmessage('Mail erfolgreich!'); if IndySMTP.Connected then IndySMTP.Disconnect; end; end. das Wo und Wie, in Paar Wochen weiss ich eventunel Wahrscheinlich gleich beim connect:
Delphi-Quellcode:
Das mit Delphi-Tags tut weh, sorry viel mals
Connect(smtpHostname, SslMode.Explicit);
|
AW: SMTP-Mail zum 100sten mal
Nochmal:
Wenn du dich über den Port 465 mit dem Mail-Server verbindest dann MUSS diese Verbindung verschlüsselt erfolgen. (Ich kann es leider nicht noch lauter schreiben). Auszug aus meinem Code (aus dem Link)
Delphi-Quellcode:
Und hier die automatische Port-Einstellung aus meinem Code
if Configuration.UseSSL
then begin FSMTP.IOHandler := FSSLIOHandlerSocketOpenSSL; // <- SSL-IOHandler zuweisen if Configuration.UseStartTLS then begin FSMTP.UseTLS := utUseExplicitTLS; // <- UseTLS setzen end else begin FSMTP.UseTLS := utUseImplicitTLS; // <- UseTLS setzen end; end else begin FSMTP.IOHandler := nil; // <- wir brauchen keinen IOHandler FSMTP.UseTLS := utNoTLSSupport; // <- UseTLS setzen end;
Delphi-Quellcode:
TSendMailConfiguration = class
private const DefaultPort = 25; DefaultImplicitTLSPort = 465; DefaultExplicitTLSPort = 587; ... end; procedure TSendMailConfiguration.SetDefaultPort; begin if FUseSSL then begin if FUseStartTLS then FPort := DefaultExplicitTLSPort // 587 else FPort := DefaultImplicitTLSPort // 465 end else FPort := DefaultPort; // 25 end; |
AW: SMTP-Mail zum 100sten mal
Sir Rufo
Du hast meinen Sonntag gerettet. Ich danke Dir massiv |
AW: SMTP-Mail zum 100sten mal
Zitat:
Ich finde aber unter dem angegebenen Link, keine Implementation von Dir, muss wahrscheinlich weiter üben :-( |
AW: SMTP-Mail zum 100sten mal
Zitat:
|
AW: SMTP-Mail zum 100sten mal
Sir Rufo, was Du sagtest, leuchtete ein und ich dachte die Lösung verstanden zu haben.
Habe auch den IOHandler und utUseImplizitTLS eingebaut (Port 465) ged aber trotzdem nix.
Delphi-Quellcode:
bekomme immer Socket fehler 11001 Host nicht gefunden:(
procedure TForm2.sendenClick(Sender: TObject);
var m: TIdMessage; begin m := TIdMessage.Create(self); m.Clear; m.From.Address := 'info@xxxx.de'; m.Recipients.EMailAddresses := 'infoqyyyy.de'; m.Subject := 'würscht'; m.Body := Memo1.Lines; IndySMTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL1; // <<<<<< IndySMTP.UseTLS:=utUseImplicitTLS; // <<<<<< // if IndySMTP.Connected then // IndySMTP.Disconnect; IndySMTP.Port := StrToInt('465'); IndySMTP.Host :='smtp.strato.de'; IndySMTP.Username := 'DasGleicheWieBeimFrom'; IndySMTP.Password := edPW.Text; IndySMTP.AuthType := TIdSMTPAuthenticationType.satDefault; IndySMTP.Connect('1000'); //hier erhalte ich Socket-fehler 11001 //host nicht gefunden IndySMTP.Authenticate; if IndySMTP.Connected then try IndySMTP.Send(m); except on E: Exception do Writeln(E.Classname+ ' - ' + E.Message); end; end; end. Das ganze nun mit XE7 Bitte schau Dir das nochmal an |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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