Einzelnen Beitrag anzeigen

SvenLittkowski

Registriert seit: 18. Dez 2004
98 Beiträge
 
#23

AW: Delphi: E-Mail-Versand / E-Mail-Formatierung

  Alt 5. Feb 2011, 18:01
Hi erneut.

Ich habe jetzt folgenden Code zum Senden einer E-Mail, doch mein Programm "erstarrt" beim Betätigen des Versandknopfes.

Delphi-Quellcode:
uses
  ... IdBaseComponent, IdComponent, IdTCPServer, IdSMTPServer, Gradient,
  IdMessage, IdUDPBase, IdUDPClient, IdSNMP, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdSMTP, idreplysmtp, IdExplicitTLSClientServerBase,
  IdSMTPBase;

...

procedure TEpsilon.ButtonMailClick(Sender: TObject);
begin
 idSMTP.Host:='smtp.googlemail.com';
 idSMTP.Port:=465; //smtp service usually runs on this port 25 but GMail wants 465
 idSMTP.Password:='MyPassword';
 //setup idmessage parameters
 idmessage.From.address:=EditEMail.Text;
 idmessage.Recipients.EMailAddresses:='MeinComputerProgram@gmail.com';
 idmessage.CCList.EMailAddresses:='';
 idmessage.BccList.EMailAddresses:='';
 idmessage.Subject:='Mein Computer Program';
 idmessage.Body.Text:=EditMailEra.Text+EditMailOld.Text+EditmailAmount.Text+EditMailModern.Text;
 idmessage.Body.Text:=idmessage.Body.Text+MemoMail.Lines.Text;
 //send the message
 try
  try
   idSMTP.Connect;
   LabelStatus.Caption:='Connecting...'; //…then show the message
   LabelStatus.Hint:='Connecting...'; //…then show the message
   idSMTP.send(idmessage);
   LabelStatus.Caption:='Sending...'; //…then show the message
   LabelStatus.Hint:='Sending...'; //…then show the message
  //if an exception occurs…
  except
   on E: EIdSMTPReplyError do
   begin
    LabelStatus.Caption:=E.Message; //…then show the message
    LabelStatus.Hint:=E.Message; //…then show the message
   end;
  end;
 finally
  //disconnect from server
  if IdSMTP.Connected then
  begin
   IdSMTP.Disconnect;
   LabelStatus.Caption:='Disconnecting...'; //…then show the message
   LabelStatus.Hint:='Disconnecting...'; //…then show the message
  end;
 end;
end;
Außerdem benutze ich die Indy-Komponenten "IDMessage" und "IDSMTP".

- GMail will aber auch "My Server requires authentication" haben. Liegt es vieleicht daran?
- Und wenn, wie baue ich dies ein?
- Was sonst ist eventuell falsch oder Schuld am Erstarren des Programmes?
- Wie kann ich laufend die Caption vom StatusLabel den Status anzeigen lassen (beim Erstarren ist es leer)?

Geändert von SvenLittkowski ( 6. Feb 2011 um 04:05 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat