Il linguaggio di programmazione Delphi
 

invio mail con INDY

liste@daddio.it 8 Apr 2017 14:32
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 := 'nomecasella@miodominio.it';
SMTP.Password := **********X';
SMTP.AuthenticationType := atLogin;
SMTP.Port := 465;
SMTP.Connect;

MSG.From.Address := 'nomecasella@miodominio.it';
MSG.Recipients.EMailAddresses := 'destinatario@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
Arcanauta 8 Apr 2017 15:00
Il 08/04/2017 14:32, liste@dad*****.it ha scritto:
> 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 := 'nomecasella@miodominio.it';
> SMTP.Password := **********X';
> SMTP.AuthenticationType := atLogin;
> SMTP.Port := 465;
> SMTP.Connect;
>
> MSG.From.Address := 'nomecasella@miodominio.it';
> MSG.Recipients.EMailAddresses := 'destinatario@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;
liste@daddio.it 8 Apr 2017 15:09
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
Morde 10 Apr 2017 10:36
On 08.04.2017 15:09, liste@dad*****.it wrote:
> 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
Morde 10 Apr 2017 10:38
On 08.04.2017 15:09, liste@dad*****.it wrote:
> 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
>

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

--
Morde
liste@daddio.it 11 Apr 2017 16:38
Il giorno lunedì 10 aprile 2017 10:36:27 UTC+2, Morde ha scritto:
> On 08.04.2017 15:09, liste@dad*****.it wrote:
>> 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

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
Daniele 12 Apr 2017 09:18
Ciao,

> vorrei fare un programmino per mandare una mail senza usare il client di
> posta elettronica.
> ecco il semplicissimo codice (che però non funziona)

> il programma si blocca inesorabilmente a SMTP.Connect e non capisco il
> perché
> 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
liste@daddio.it 12 Apr 2017 19:15
può darsi... ma come facci a implementare i protocolli SSL????? hai qualche
riferimento?
alessandrob 13 Apr 2017 09:20
Il giorno mercoledì 12 aprile 2017 19:15:55 UTC+2, li...@dad*****.it ha
scritto:
> 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
Daniele 13 Apr 2017 09:31
Ciao,

> può darsi... ma come facci a implementare i protocolli SSL????? hai
> 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
liste@daddio.it 17 Apr 2017 17:40
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????

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione Delphi | Tutti i gruppi | it.comp.lang.delphi | Notizie e discussioni delphi | Delphi Mobile | Servizio di consultazione news.