Newsgroup: it.comp.lang.delphi
Titolo: invio mail con INDY

vorrei fare un programmino per mandare una mail senza usare il client di posta elettronica.
ecco il semplicissimo codice (che però non funziona)
 
var
    SMTP: TIdSMTP;
    MSG: TIdMessage;
 
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  SMTP.Host := '
smtps.aruba.it
';
  SMTP.UserId := '
nomec...@miodominio.it
';
  SMTP.Password := XXXXXXX';
  SMTP.AuthenticationType := atLogin;
  SMTP.Port := 465;
  SMTP.Connect;
 
  MSG.From.Address := '
nomec...@miodominio.it
';
  MSG.Recipients.EMailAddresses := '
destin...@mail.it
;
  MSG.Subject := 'Oggetto';
  MSG.Body.Text := 'corpo testo mail';
  SMTP.Send(MSG);
  form1.Caption := 'messaggio spedito';
end;
 
il programma si blocca inesorabilmente a SMTP.Connect e non capisco il perché
qualche suggerimento?
grazie


Secondo me, dopo SMTP.AuthenticationType := atLogin manca SMTP.Authenticate;
 

se metto SMTP.Authenticate subito dopo SMTP.AuthenticationType... nemmeno arrivo a compilare la riga SMTP.Connect perché delphi si blocca proprio su SMTP.Authenticate dicendo
eaised esception class EldConnClosedGracefully with message 'Connection Closed Gracefully

 
 
Closed gracefully vuol dire che il tuo utente ha qualcosa che non va.
Il dominio è lo stesso
 
-- 
Morde

 
 
http://www.swissdelphicenter.ch/en/showarticle.php?id=1
 
 
-- 
Morde


che significa il dominio è lo stesso???
lo stesso di cosa?
cmq io ho solo un dominio con le email associate
fatto sta che non riesco a mandare email

 qualche suggerimento?
 
probabilmente non c'entra niente con il tuo problema, comunque ti riporto 
quello che mi e' capitato.
Nel mio programma, quando serve o per decisione dell'utente (ovvero io), il 
programma manda (in automatico) un'email.
Anziche' aruba, la casella di posta e' appoggiata su yahoo.
Tutto funzionava bene fino a circa un anno fa, improvvisamente ha smesso di 
funzionare e, sulla connect, restituiva qualche eccezione.
Per poter rimandare il messaggio via email ho dovuto implementare, nella 
procedura di invio mail, i protocolli SSL.
Dopo quello, ha ripreso tutto a funzionare.
 
Prova a verificare l' SSL (molto probabile che nel tuo caso non sia questo 
!!).
 
Ciao
 
Daniele
 
 

può darsi... ma come facci a implementare i protocolli SSL????? hai qualche riferimento?
 

 può darsi... ma come facci a implementare i protocolli SSL????? hai qualche riferimento?
 
Puoi partire dai suggerimenti di Marco Cantu
http://www.marcocantu.com/tips/oct06_gmail.html
 

 qualche riferimento?
 
Lo trovi sotto la palette
 
Indy I/O Handler
 
Lo importi nella tua form, lo configuri, compili e vedi cosa succede.
 
ciao
 
Daniele
 
PS: Ottimo il suggerimento di Alessandrob 
 

Allora ho modificato il mio codice utilizzando ssl.. adesso il codice è:
 
  IdSSLIOHandlerSocketOpenSSL1.Destination:=Setup.edSMTP.Text+' : 465';
  IdSSLIOHandlerSocketOpenSSL1.Host:=Setup.edSMTP.Text;
  IdSSLIOHandlerSocketOpenSSL1.MaxLineAction:=maException;
  IdSSLIOHandlerSocketOpenSSL1.Port:=465;
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSv1;
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode:=sslmUnassigned;
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode:= [];
  IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth:= 0;
  IdSMTP1.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
  IdSMTP1.UseTLS:=utUseExplicitTLS;
  IdSMTP1.Host := Setup.edSMTP.Text;
  IdSMTP1.Username:= Setup.edUserID.Text;
  IdSMTP1.Password := Setup.edPassword.Text;
  IdSMTP1.Connect;
 
 
l'errore adesso me lo da al connect.... l'errore è:
raised exception class EIdSocketError with message Socket Error #10061 connection refused 
 
qualcuno può darmi una mano????