Autor Beitrag
jo-freaky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Di 03.07.07 21:17 
Hi,

ich habe bereits das Forum durchsucht und immer noch folgendes Problem:

Beim Versuch eine Email zu versenden (via googlemail) bekomme ich die Fehlermeldung
"Exception der Klasse EIdSMTPReplyError .... Meldung: 'Must issue a STARTTLS command first'"

Jetzt habe ich hier gelesen, dass man irgendwie mit TLS arbeiten muss.

Zitat: "For Indy 10
Indy 10 supports SMTP with explicit TLS. In the Indy 10's TIdSMTP, you simply have to assign a
TIdSSLIOHandlerSocketBase descendent to the TIdSMTP.IOHandler property and set the UseTLS
property to either utUseRequireTLS if you do not want to use an unencrypted connection or
utUseExplicitTLS if you are willing to use an unencrypted connection."

Leider sind meine bisherigen Versuche gescheitert das umzusetzen, weil ich keine Ahnung habe wie das gemacht werden muss.

Das hier ist mein bisheriger Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
//Serverdaten
  IdSmtp.Host := 'smtp.googlemail.com';
  IdSmtp.Port := 25;

  //Benutzerdaten für Authentifizierung
  IdSmtp.Username := 'meinemailaddy';
  IdSmtp.Password := 'meinpw';
  try
    IdSmtp.Connect;
    IdSmtp.Send(IdMessage);
  finally
    IdSmtp.Disconnect;
  end;


Ich hoffe ihr könnt / wollt mir helfen.

Vielen Danke im Voraus!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt
rolandt4088
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

WINDOWS XP
Delphi 7, CodeGear RAD Studio
BeitragVerfasst: Do 05.07.07 15:29 
Hallo,
ich habe es damit gelöst, dass ich mich vorher über pop3 einlogge.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
Procedure Tf_bestellung.BesttigungviaEMail1Click(Sender: TObject);
 begin 
  idpop3.Host := Query3.fieldbyname('pop3_server').AsString;
   idpop3.Username := Query3.fieldbyname('benutzer').AsString;
   idpop3.Password := Query3.fieldbyname('passwort').AsString;
   idpop3.Connect(-1);
   IDSMTP.Host := Query3.fieldbyname('smtp_server').AsString;
   IDSMTP.Username := Query3.fieldbyname('benutzer').AsString;
   IDSMTP.Password := Query3.fieldbyname('passwort').AsString;
   IDSMTP.Port := 25;
   idMessage.Subject:= subjekt_text;
   IdSMTP.Connect;//Stelle Verbindung her
   {....}
   try
    IdSMTP.Send(IdMessage);//Nachrich senden
   finally
    idsmtp.Disconnect;
    idpop3.Disconnect;
   end;
end;


Probiers mal. Wenn nicht melde Dich wieder.

Gruß
Roland
jo-freaky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Mi 25.07.07 22:03 
Vorab erst einmal Sorry, dass ich mich jetzt erst wieder melde.

@Rolandt4088

Ich habe es genauso gemacht wie du, allerdings mit weniger Erfolg.

Jetzt kommt immer die Fehlermeldung:

"Conntecion Closed Gracefully"


Weisst du rat?

Dank im Vorraus!
rolandt4088
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

WINDOWS XP
Delphi 7, CodeGear RAD Studio
BeitragVerfasst: Sa 28.07.07 00:50 
Hallo

es wird Dir mitgeteilt, dass die Verbindung geschlossen ist.

Ich vermute, dass Du keine Verbindung hattest.

Der Profi dadrin bin ich auch nicht. Poste doch noch mal den Quelltext den Du jetzt hast, dann kann ich ich es mit meinen Benutzerdaten probieren.

Gruß
Roland
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 28.07.07 10:30 
Führe einfach mal Schrittweise aus, was Du oben Zitiert hast:

Setze eine entsprechende Komponente (TidSSLIOHandlerBlaBla auf das Form und setze die erwähnten Eigenschaften.

Die Ursprügliche Meldung besagt nämlich, dass eine TLS (oder SSL)-Verbindung erwartet wird, aber keine Verschlüsslung (SSL\TLS) initialisiert wurde.

Wer Lesen kann, ist klar im Vorteil ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
jo-freaky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Sa 28.07.07 16:49 
@roland:
Ich habe genau deinen Quelltext genommen und meine Verbindungsdaten verwendet.

@BenBE:
Ich habe Schrittweise getan, was ich in meinem ersten Post zitiert hatte:

Fehlermeldung: Could not load SSL Library

Irgendwie komme ich kein bisschen weiter.


Danke für eure Bemühungen.
rolandt4088
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

WINDOWS XP
Delphi 7, CodeGear RAD Studio
BeitragVerfasst: So 29.07.07 23:04 
Hallo,
ich weiß jetzt gar nicht ob Du gestern meine Hilfe bekommen hast. Ich finde sie nicht.
Hier noch einmal die Lösung.
Du mußt allerdings noch die DLL-Dateien für Indy herunterladen und in ein Dein Projektverzeichnis kopieren.
Link zu den DLL-Dateien: www.freudundfreunde....indy_openssl096g.zip
Hier der fertige Quellcode. Im Quellcode stehen noch wichtige Informationen.

ausblenden volle Höhe 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:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
//Serverdaten
  IdSmtp1.Host := 'smtp.googlemail.com';
  //IdSmtp1.Port := 25;
  //Benutzerdaten für Authentifizierung
  IdSmtp1.Username := 'dein benutzername@googlemail.com';
  IdSmtp1.Password := '*****';
  idMessage1.Subject:= Edit3.text;//Betreffzeile
  idMessage1.Recipients.EMailAddresses := edit1.text;//Empfänger
  idMessage1.Sender.text:= edit2.Text;//Absender
  idMessage1.Body.Add(Edit3.Text);//Text
  try
    IdSmtp1.Connect;
    IdSmtp1.Send(IdMessage1);
  finally
    IdSmtp1.Disconnect;
  end;
{IdSSLIOHandlerSocket1 auf die Form ziehen
 FOlgende Einstellung: SSLOptions:
                       Method: sslvSSLv2
                       Mode: sslmClient

 Einstellung bei IDSMTP1: IOHandler: isSSLIOHandlerSocket1
                          Port: 465
                          Authentication: atLogin

 Achtung: Bei Google mußt Du Deine E-Mail Einstellung folgendermaßen ändern:
  Gehe auf EInstellung --> Weiterleitung und POP
  Bei POP-Download: Entweder POP für alle Nachrichten oder
                             POP nur für ...
  Klick auf Änderung speichern}


end;


Viel Spaß
Roland