Problema invio email con server SMTP esterno (Aruba)

lunedì 04 febbraio 2013 - 11.09
Tag Elenco Tags  C#  |  .NET 2.0  |  Visual Studio 2005

AntCiar Profilo | Expert

Salve.
Nella mia applicazione ho inserito il seguente pezzo di codice per inviare email:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questo ha funzionato perfettamente e funziona ancora oggi con tutti i provider esterni.
Ora alcuni clienti utilizzano Aruba come provider esterno per le email.
Configurando tutti i parametri il codice sopracitato non funziona.
Facendo delle ricerche su internet specificando Aruba, alcuni utilizzavano a buon fine la classe Web.mail anziche la Net.mail

Ho implementato il codice con il riferimento alla Web.mail (vecchissima e obsoleta) e non funziona lo stesso (sempre con i parametri di Aruba, con gli atri funziona sia la Net.mail che la Web.mail)
l'errore che mi da è "Eccezione generata dalla destinazione di una chiamata - Il trasporto non è riuscito a connettersi al server."

di seguito il codice con la Web.mail

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Qualcuno sa come risolvere il problema?

grazie

Cristian Barca

DomA Profilo | Expert

Ciao,
uso anch'io questo codice e ti confermo che non mi da problemi. L'unica cosa che mi viene in mente è che potrebbe essere un problema di credenziali. Se quelle che inserisci sono corrette, apri un ticket di assistenza.

----------------------------------------------------------------------------------------------




http://www.infomidia.it

Domenico

AntCiar Profilo | Expert

Ciao Domenico.

Quindi mi stai dicendo che utilizzi lo stesso codice e ti funziona?

Le credenziali sono corrette. mi ha mandato tutto il cliente che ha il problema.

Ma......

Visto che non posso darti le credenziali per provare, potresti postare il blocco di codice (se differente dal mio) in modo che posso provare con i parametri corretti?

Grazie
Cristian Barca

DomA Profilo | Expert

Ciao Cristian,
il codice è in vb.net ed è testato

I dati come Ssl, Username, password li leggo dal db in quanto la mia applicazione prevede la creazione di più account.

Try Dim mail As MailMessage = New MailMessage mail.From = New MailAddress(Nome) mail.To.Add(New MailAddress(Me.txtDestinatario.Text)) mail.Subject = Me.txtOggetto.Text mail.Body = Me.txtTesto.Text If Me.txtAllegato.Text <> "" Then Dim attach As New Attachment(Me.txtAllegato.Text) mail.Attachments.Add(attach) End If mail.IsBodyHtml = True Dim client As SmtpClient = New SmtpClient(ServerPU, porta) client.EnableSsl = protezione2 client.Credentials = New System.Net.NetworkCredential(Nome, pswReale) client.DeliveryMethod = SmtpDeliveryMethod.Network client.Send(mail) MsgBox("Messaggio inviato.", MsgBoxStyle.Information, "Plaza - E.mail") Catch ex As Exception MsgBox(ex.Message) End Try



ed ecco la form di invio:


1466x508 229Kb


-------------------------------------------------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

DomA Profilo | Expert

>>P.S. dimentcarvo di dirti che il codice non funziona su gmail qualora l'utente abbia attivato la doppia autenticazione (ovvero l'inserimento di un codice che arriva tramite sms).

---------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

AntCiar Profilo | Expert

Grazie Domenico.

Ho provato anche il tuo codice ma lo stesso non va.

praticamente il cliente ha comperato un dominio su aruba che gli fornisce anche la casella di posta elettonica.

Nel sito di aruba c'è scritto che il server SMTP della posta in uscita è smtp.NomeDominio.xxx e che occorre una connessione con autenticazione (username e password) e SSL disabilitata.

Con queste impostazioni sia il mio codice sia il tuo si piantano tutti e due su mailClient.Send(message) senza dare errore e senza continuare (e soprattutto senza inviare l'email).

Ora a questo punto penso che sia un problema di Aruba perchè con altri provider funziona alla grande.

ora mando al cliente il codice che utilizzo per l'email con una app. di test così gli faccio aprire un ticked su Aruba e vediamo che ci sanno dire.

grazie

Ciao
Cristian Barca

DomA Profilo | Expert

Magari provo anch'io più tardi visto che ho un dominio Aruba.
>>gli faccio aprire un ticked su Aruba e vediamo che ci sanno dire.
mi sa che è l'unica cosa da fare. A me non da' problemi.

-----------------------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

AntCiar Profilo | Expert

Ciao.

Riguardo al problema, ho fatto aprire un ticket su Aruba.
Gli ho inviato una mail con 4 pagine di prove e parametri utilizzati.
Gli ho anche mandato una applicazione in cui ho inserito il codice con la classe NET.Mail.

Risposta di Aruba (in sintesi): non possiamo fare test su applicazioni dei clienti.

In poche parole "attaccati!!!"

... eppure il cliente paga per avere il servizio. E se fosse stato gratuito che succedeva.....
Cristian Barca

giorgiodipietro Profilo | Junior Member

Hai provato a vedere se con gli stessi parametri un client di posta commerciale funziona?
(es. Outlook, Thunderbird, etc.)
O magari se con altre linee internet non hai problemi??

..almeno capisci se è veramente un problema delle dll e del tuo exe..

Giorgio

Non si finisce mai di imparare!!

AntCiar Profilo | Expert

Ciao.

La cosa strana è che con Outlook funziona correttamente.

In pratica con il codice che utilizzo io (che poi da ricerche fatte su internet è quello che usano tutti) mi capita questo:

- configuro correttamente tutti i parametri;
- invio l'email e il codice si blocca sul metodo Send(message);
- allo scadere del timeout, l'esecuzione va nel catch e mi da come messaggio "Timeout dell'operazione".


Impostando invece come timeout il valore Int32.MaxValue (circa 590 ore) si blocca sempre sul metodo Send(message) e dopo circa 4-5 ore di attesa va in catch dandomi come messaggio "Errore di trasporto".

facendo varie prove ho potuto notare che il server SMTP non risponde proprio.
Nelle prove ho fatto anche un test chiamando il server SMTP con parametri di autenticazione completamente sbagliati. Risultato.... sempre la stessa cosa: Timeout dell'operazione.
Mi sarei aspettato un errore del tipo "Autenticazione non valida" o cose del genere....

Se invece metto un SMTP inesistente mi da il messaggio "Impossibile risovere il server...." (come del resto mi aspetto che sia)


Quelli di Aruba come detto non vogliono fare carte. Hanno anche sostenuto poi che è una limitazione dovuta al numero eccessivo di connessioni fatte verso il server SMTP lasciate aperte in sospeso. Sta cosa mi sa come un "arrampicarsi sugli specchi" anche perchè la connessione e tutto il resto viene gestita in automatico dalla classe Net.Mail.



Comunque ho temporaneamente risolto aggiungendo una ulteriore modalità di invio email che prevede l'utilizzo della MAPI in modo da sfruttare Outlook se installato per l'invio della mail.

Cristian Barca

SIGMABETA Profilo | Newbie

Ciao.
Sto avendo lo stesso problema che avevi tu nel 2013.
Utilizzando un codice identico al tuo da un'applicazione aspnet su Host Aruba, non riesco ad inviare posta.
Desirerei sapere se in un anno sei riuscito a fare funzionare l'applicazione o ti sei arreso ad utilizzare MAPI su locale del cliente.
In caso positivo puoi darmi qualche suggerimento?
Grazie!
Sergio.

AntCiar Profilo | Expert

Ciao.

Niente da fare. Ho contattato anche Aruba e in parole povere mi hanno risposto "a noi risulta tutto funzionare".
Alla fine nell'applicazione ho implementato sia il codice che mi da problemi sia il MAPI.
Il cliente nel caso in cui ha Aruba, imposta nel programma di utilizzare il MAPI altrimenti usa l'altro.
Cristian Barca

SIGMABETA Profilo | Newbie

Allucinante quanto sia basso il livello del servizio clienti che Aruba offre.
Ebbi problemi anche con l'uso in SQL Server dello schema dbo nonché nell'uso di SHA1 per la criptazione della pw.
Se ho risolto, non lo debbo certo ad Aruba ma a utenti come me e come te che scrivono sui vari forum.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5