Invio di e-mail tramite il server SMTP Gmail con C #


243

Per qualche motivo, né la risposta accettata né nessun altro funzionano per me per " Invio di e-mail in .NET tramite Gmail ". Perché non dovrebbero funzionare?

AGGIORNAMENTO: ho provato tutte le risposte (accettate o meno) nell'altra domanda, ma nessuna di esse funziona.

Vorrei solo sapere se funziona per qualcun altro, altrimenti Google potrebbe aver cambiato qualcosa (che è successo prima).

Quando provo il pezzo di codice che utilizza SmtpDeliveryMethod.Network, ricevo rapidamente una SmtpException su Send (messaggio). Il messaggio è

Il server SMTP richiede una connessione sicura o il client non è stato autenticato.

La risposta del server è stata:

5.5.1 Autenticazione richiesta. Ulteriori informazioni su "<- sul serio, finisce qui.

AGGIORNARE:

Questa è una domanda che ho posto molto tempo fa e la risposta accettata è il codice che ho usato molte, molte volte su diversi progetti.

Ho preso alcune delle idee in questo post e in altri progetti EmailSender per creare un progetto EmailSender su Codeplex . È progettato per la testabilità e supporta i miei servizi SMTP preferiti come GoDaddy e Gmail.


Ho provato a farlo usando metodi simili in una lingua diversa. Incontrato lo stesso tipo di cose: i vecchi metodi documentati che prima funzionavano, non funzionavano per me. Quindi ti stai chiedendo se Google abbia cambiato qualcosa o se hai fatto qualcosa di sbagliato.
AaronLS

3
@aaronls l'unica modifica recente sembra essere correlata alla porta 465. L'ho provato mentre cercavo una soluzione (stavo solo lavorando sullo stesso) e i timeout della porta 465 sono sempre in funzione. In tal caso, prova con la porta 587.
Eglasio

2
Questo problema è dovuto alla "verifica delle parole" (captcha). Se accedi tramite l'interfaccia web a mano e compili captcha, il tuo SMTP inizierà a funzionare.
Robert Koritnik,

4
FWIW, lavora per me. devi usare 587 e .EnableSSL true. c # 4 / .NET 4 attualmente non supporta 465 / SSL alternativi. gmail richiede la configurazione di altri client di posta .
gerryLowry,

1
Segui la risposta di @eglasius e assicurati di attivare l'impostazione "Consenti app meno sicure" in Gmail per consentire a Gmail di autenticare il tuo account.
user2713706

Risposte:


291

CVertex, assicurati di rivedere il tuo codice e, se ciò non rivela nulla, pubblicalo. Lo stavo solo abilitando su un sito ASP.NET di prova su cui stavo lavorando e funziona.

In realtà, a un certo punto ho avuto un problema con il mio codice. Non l'ho individuato fino a quando non ho avuto una versione più semplice su un programma console e ho visto che funzionava (nessun cambiamento sul lato Gmail perché eri preoccupato). Il codice seguente funziona esattamente come gli esempi a cui hai fatto riferimento:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new SmtpClient("smtp.gmail.com", 587)
            {
                Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"),
                EnableSsl = true
            };
            client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody");
            Console.WriteLine("Sent");
            Console.ReadLine();
        }
    }
}

Ho anche funzionato usando una combinazione di web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx e codice (perché non c'è corrispondenza EnableSslnel file di configurazione :().


1
Ha funzionato brillantemente per me in un'applicazione Winforms C #. Grazie Freddy.
Andrew,

13
Ricorda solo che un codice come questo sta effettivamente trasmettendo all'utente le tue credenziali di Gmail in testo normale ...
Chris Marisic,

3
esiste in realtà un'impostazione corrispondente per enableSsl nel web.config, vedere la risposta di seguito
Wiebe Tijsma,

4
@Zidad che è stato aggiunto in 4.0.
Eglasio,

21
Potrebbe anche essere necessario abilitare l'accesso per "app meno sicure" nella pagina delle impostazioni di Gmail: google.com/settings/security/lesssecureapps . Ciò è necessario se si riceve l'eccezione "` La risposta del server è stata: 5.5.1 Autenticazione richiesta.
Ravendarksky

74

I SEGUENTI SARANNO QUASI Sicuramente LA RISPOSTA ALLA TUA DOMANDA SE TUTTI GLI ALTRI SONO STATI GUASTI :

Ho avuto esattamente lo stesso errore, risulta che l'algoritmo di misurazione della forza della nuova password di Google è cambiato ritenendo la mia password attuale troppo debole e non raccontandomi nulla (nemmeno un messaggio o un avvertimento) ... Come ho scoperto questo ? Bene, ho scelto di cambiare la mia password per vedere se avrebbe aiutato (ho provato tutto il resto inutilmente) e quando ho cambiato la mia password, ha funzionato!

Quindi, per un esperimento, ho provato a cambiare la mia password con quella precedente per vedere cosa sarebbe successo, e Gmail non mi ha permesso di farlo, citando il motivo "mi dispiace non poterti permettere di salvare questa modifica come hai scelto la password è troppo debole "e non mi consente di tornare alla mia vecchia password. Ho capito da questo che si stava sbagliando perché a) devi cambiare la password una volta ogni x quantità di mesi oppure b). come ho detto prima, i loro algoritmi di sicurezza della password sono cambiati e quindi la password debole che avevo non è stata accettata, anche se non hanno detto nulla al riguardo quando ho provato ad accedere OVUNQUE! Questo (numero 2) è lo scenario più probabile, poiché la mia password debole aveva circa 4 mesi e mi permetteva di usarla in Gmail.

È piuttosto brutto che non abbiano detto nulla al riguardo, ma ha senso. Poiché la maggior parte delle e-mail dirottate sono connesse utilizzando software al di fuori di Gmail, e immagino che sia necessario disporre di una password più forte se si desidera utilizzare Gmail al di fuori dell'ambiente Gmail.

Spero che aiuti!


2
Grazie, come dici tu, cambia la password in modo che sia forte e tutto funzionerà bene.
Gavin,

1
Questo era esattamente il mio problema: tutti gli altri suggerimenti riguardavano la configurazione, ma la mia configurazione era corretta dall'inizio, ma continuavo a ricevere l'errore. La modifica della password ha fatto la differenza,
André Vermeulen,

Grazie, finalmente sono stato in grado di risolvere questo problema, il mio caso era in realtà ancora più complicato, sono stato in grado di inviare e-mail dalla mia macchina di sviluppo (che si trova in Georgia, nel Caucaso), ma le e-mail non riuscivano dai server di produzione (Regno Unito) cambiando la password in complessa tutto funziona ora :)
Kirill Chilingarashvili il

Grazie. Ho avuto lo stesso problema con il mio account Gmail che non possedeva una password. L'ho aggiornato con uno forte e i miei codici funzionano.
Thomas.Benz,

Grazie, sì, finalmente è solo cambiare la password in forte.
Misha Beskin,

68

Oltre agli altri passaggi per la risoluzione dei problemi di cui sopra, vorrei anche aggiungere che se hai abilitato l'autenticazione a due fattori (nota anche come verifica in due passaggi ) sul tuo account GMail, devi generare una password specifica per l'applicazione e utilizzarla di recente password generata per l'autenticazione tramite SMTP .

Per crearne uno, visitare: https://www.google.com/settings/ e selezionare Autorizzazione di applicazioni e siti per generare la password.


1
Non avevo abilitato la verifica in due passaggi e non importava quanto fosse sicura la password, questo era l'unico modo per risolvere il mio problema. Sono stato in grado di utilizzare altri account Gmail senza password a 2 passaggi e più deboli senza problemi ... per utilizzare l'account che volevo davvero utilizzare dovevo abilitare in 2 passaggi e utilizzare una password specifica per l'applicazione.
Ian Robertson,

Esattamente quello che sto facendo, eppure lo stesso errore: - / Si comporta come se la mia password non fosse abbastanza forte, ma sto usando la password dell'app che Gmail mi ha dato !!!
Jerry Dodge,

55
Turn On Access For Less Secure Apps and it will work for all no need to change password.

Link alle impostazioni di Gmail

inserisci qui la descrizione dell'immagine


1
Questo ha funzionato per me. Ancora di più, quando ho provato a inviare e-mail nel modo sopra, in realtà ho ricevuto e-mail da Google in cui affermano esplicitamente che hanno bloccato questo tentativo da un'app meno sicura e hanno menzionato in questo modo per risolverlo
Demarsch

1
Questa è la chiave più importante del puzzle poiché avevo impostato qualsiasi altra impostazione e sembrava non funzionare. Non appena ho avuto questa impostazione, ha funzionato come un fascino.
Perso il

1
Questo ha funzionato per me. Password app + SSL + NetworkCredentials. (VB.NET)
CrazyIvan1974,

30

Ho avuto dei problemi con l'invio di e-mail anche dal mio account Gmail, dovuti a diverse delle situazioni sopra menzionate. Ecco un riepilogo di come l'ho fatto funzionare e mantenendolo flessibile allo stesso tempo:

  • Prima di tutto configura il tuo account GMail:
    • Abilita IMAP e asserisci il giusto numero massimo di messaggi (puoi farlo qui)
    • Assicurati che la tua password abbia almeno 7 caratteri e sia forte (secondo Google)
    • Assicurati di non dover prima inserire un codice captcha. Puoi farlo inviando un'email di prova dal tuo browser.
  • Apporta le modifiche in web.config (o app.config, non l'ho ancora provato ma presumo che sia altrettanto facile farlo funzionare in un'applicazione Windows):
<configuration>
    <appSettings>
        <add key="EnableSSLOnMail" value="True"/>   
    </appSettings>

    <!-- other settings --> 

    ...

    <!-- system.net settings -->
    <system.net>
        <mailSettings>
            <smtp from="yourusername@gmail.com" deliveryMethod="Network">
                <network 
                    defaultCredentials="false" 
                    host="smtp.gmail.com" 
                    port="587" 
                    password="stR0ngPassW0rd" 
                    userName="yourusername@gmail.com"
                    />
                <!-- When using .Net 4.0 (or later) add attribute: enableSsl="true" and you're all set-->
            </smtp>
        </mailSettings>
    </system.net>
</configuration>
Add a Class to your project:

Imports System.Net.Mail

Public Class SSLMail

    Public Shared Sub SendMail(ByVal e As System.Web.UI.WebControls.MailMessageEventArgs)

        GetSmtpClient.Send(e.Message)

        'Since the message is sent here, set cancel=true so the original SmtpClient will not try to send the message too:
        e.Cancel = True

    End Sub

    Public Shared Sub SendMail(ByVal Msg As MailMessage)
        GetSmtpClient.Send(Msg)
    End Sub

    Public Shared Function GetSmtpClient() As SmtpClient

        Dim smtp As New Net.Mail.SmtpClient
        'Read EnableSSL setting from web.config
        smtp.EnableSsl = CBool(ConfigurationManager.AppSettings("EnableSSLOnMail"))
        Return smtp
    End Function

End Class

E ora ogni volta che vuoi inviare e-mail tutto ciò che devi fare è chiamare SSLMail.SendMail:

ad es. in una pagina con controllo PasswordRecovery:

Partial Class RecoverPassword
Inherits System.Web.UI.Page

Protected Sub RecoverPwd_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles RecoverPwd.SendingMail
    e.Message.Bcc.Add("webmaster@example.com")
    SSLMail.SendMail(e)
End Sub

End Class

O ovunque nel tuo codice puoi chiamare:

SSLMail.SendMail(New system.Net.Mail.MailMessage("from@from.com","to@to.com", "Subject", "Body"})

Spero che questo aiuti chiunque si imbatte in questo post! (Ho usato VB.NET ma penso che sia banale convertirlo in qualsiasi linguaggio .NET.)


+1 "enableSsl =" true ": funziona con un'app legacy che non imposta in modo specifico la proprietà Smtp.enableSsl senza ricompilare gli assembly. Suggerimento eccellente!
Metro Puffo

e non dimenticare il firewall. La porta 587 non è una porta normale da aprire.
Guy Lowe,

13
Dim SMTPClientObj As New Net.Mail.SmtpClient
SMTPClientObj.UseDefaultCredentials = False
SMTPClientObj.Credentials = New System.Net.NetworkCredential("myusername@gmail.com", "mypwd")
SMTPClientObj.Host = "smtp.gmail.com"
SMTPClientObj.Port = 587
SMTPClientObj.EnableSsl = True
SMTPClientObj.Send("myusername@gmail.com","yourusername@gmail.com","test","testbody")

Se viene visualizzato un errore del tipo "Il server SMTP richiede una connessione protetta o il client non è stato autenticato. La risposta del server è stata: 5.5.1 Autenticazione richiesta. Ulteriori informazioni su" prima di iniziare, assicurarsi che la riga sia SMTPClientObj.UseDefaultCredentials = Falseinclusa e questa riga dovrebbe prima del SMTPClientObj.Credentials.

Ho provato a cambiare queste 2 righe in modo opposto e l' errore 5.5.1 Authentication Required ha restituito.


Questo è esattamente quello che mi è successo. Chi pensava che l'ordine di impostare la proprietà avrebbe risolto / spezzato le cose!
Bill Yang,

Questo è stato il problema anche per me, ho cambiato l'ordine come suggerito e funziona benissimo - mal di testa, ugh!
eth0

13

Oh ... È incredibile ... Prima di tutto non ho potuto inviare un'e-mail per nessun motivo. Ma dopo aver modificato la sequenza di queste due righe come di seguito, funziona perfettamente.

//(1)
client.UseDefaultCredentials = true;
//(2)
client.Credentials = new System.Net.NetworkCredential("username@gmail.com", "password");

Spero che questo aiuto !!! :)


1
Sì, l'ordine fa la differenza. Soprattutto quando si impostano le credenziali della proprietà e non si desidera utilizzare le credenziali predefinite.
Stefan Cvetanovski,

1
Secondo la documentazione, per utilizzare le credenziali è necessario impostare UseDefaultCredentials = false. Tuttavia, queste due ambientazioni sembrano essere segretamente intrecciate. Se si imposta UseDefaultCredentials su true o false, avrà l'effetto secondario di impostare le credenziali su null. E sembra che l'impostazione delle credenziali possa impostare effetti collaterali UseDefaultCredentials = false. Non documentato come ciò, tuttavia, potrebbe essere un bug o solo uno sviluppatore zoppo.
Aaron,

10

Il problema non riguarda la capacità tecnica di inviare tramite Gmail. Funziona per la maggior parte delle situazioni. Se non riesci a far inviare una macchina, di solito è dovuto al fatto che la macchina non è stata autenticata con un essere umano ai controlli almeno una volta.

Il problema che la maggior parte degli utenti deve affrontare è che Google decide di modificare continuamente i limiti di uscita. Devi sempre aggiungere un codice difensivo alla tua soluzione. Se inizi a vedere errori, abbassa la velocità di invio e interrompi l'invio per un po '. Se continui a provare a inviare Google a volte aggiungerai tempo extra al tuo periodo di ritardo prima di poterlo inviare di nuovo.

Quello che ho fatto nel mio sistema attuale è di inviare con un ritardo di 1,5 secondi tra ciascun messaggio. Quindi se riscontro errori, fermati per 5 minuti e ricomincia. Questo di solito funziona e ti consentirà di inviare fino ai limiti dell'account (l'ultima volta che ho verificato che erano 2.000 per i primi accessi dei clienti al giorno).


1
Questo era esattamente il mio problema! Quando sono stato distribuito a Production, ho riscontrato il problema e dopo aver effettuato l'accesso a Gmail sul server stesso, questo ha ripreso a funzionare.
Questo è il


9

Ho avuto lo stesso problema, ma si è scoperto che la mia protezione antivirus stava bloccando la posta "spam" in uscita. La disattivazione mi ha permesso di utilizzare la porta 587 per inviare e-mail SMTP tramite GMail


Ho disabilitato Windows Defender e ha anche iniziato a funzionare.
MorioBoncz,

9

Se nient'altro ha funzionato qui per te, potrebbe essere necessario consentire l'accesso al tuo account Gmail da applicazioni di terze parti. Questo era il mio problema Per consentire l'accesso, procedi come segue:

  1. Accedi al tuo account Gmail.
  2. Visita questa pagina https://accounts.google.com/DisplayUnlockCaptcha e fai clic sul pulsante per consentire l'accesso.
  3. Visita questa pagina https://www.google.com/settings/security/lesssecureapps e abilita l'accesso per app meno sicure.

Questo ha funzionato per me, spero che funzioni per qualcun altro!


8

Non sono sicuro di quale versione .NET sia necessaria per questo perché eglasius ha menzionato che non esiste alcuna enableSslimpostazione corrispondente (sto usando .NET 4.0, ma sospetto che funzioni in .NET 2.0 o versioni successive), ma questa configurazione ha funzionato per io (e non richiede di utilizzare alcuna configurazione programmatica):

<system.net>
  <mailSettings>
    <smtp from="myusername@gmail.com" deliveryMethod="Network">
      <network defaultCredentials="false" enableSsl="true" host="smtp.gmail.com" port="587" password="password" userName="myusername@gmail.com"/>
    </smtp>
  </mailSettings>
</system.net>

Potrebbe essere necessario abilitare prima POP o IMAP sul proprio account Gmail: https://mail.google.com/mail/?shva=1#settings/fwdandpop

Consiglio di provarlo prima con un normale client di posta ...


2
è una novità di 4.0, confronta le versioni in -> msdn.microsoft.com/en-us/library/ms164242(v=VS.90).aspx
eglasius

Ciao Eglasio ... OK grazie per quello! Stranamente hanno solo l'approccio programmatico nella versione precedente alla 4.0. Immagino che tutti dimentichiamo le cose di tanto in tanto :)
Wiebe Tijsma

6

@Andres Pompiglio: Sì, è vero, è necessario modificare la password almeno una volta .. questo codice funziona perfettamente:

//Satrt Send Email Function
public string SendMail(string toList, string from, string ccList,
    string subject, string body)
{

    MailMessage message = new MailMessage();
    SmtpClient smtpClient = new SmtpClient();
    string msg = string.Empty;
    try
    {
        MailAddress fromAddress = new MailAddress(from);
        message.From = fromAddress;
        message.To.Add(toList);
        if (ccList != null && ccList != string.Empty)
            message.CC.Add(ccList);
        message.Subject = subject;
        message.IsBodyHtml = true;
        message.Body = body;
        // We use gmail as our smtp client
        smtpClient.Host = "smtp.gmail.com";   
        smtpClient.Port = 587;
        smtpClient.EnableSsl = true;
        smtpClient.UseDefaultCredentials = true;
        smtpClient.Credentials = new System.Net.NetworkCredential(
            "Your Gmail User Name", "Your Gmail Password");

        smtpClient.Send(message);
        msg = "Successful<BR>";
    }
    catch (Exception ex)
    {
        msg = ex.Message;
    }
    return msg;
}
//End Send Email Function

E puoi effettuare una chiamata alla funzione usando:

Response.Write(SendMail(recipient Address, "UserName@gmail.com", "ccList if any", "subject", "body"))

Il server SMTP richiede una connessione sicura o il client non è stato autenticato. La risposta del server è stata: 5.5.1 Autenticazione richiesta. Ulteriori informazioni su
Savas Adar

6

Stavo usando la connessione VPN aziendale. Era il motivo per cui non potevo inviare e-mail dalla mia domanda. Funziona se mi disconnetto dalla VPN.


5

Ho anche scoperto che l'account con cui ho effettuato l'accesso è stato disattivato da Google per qualche motivo. Dopo aver reimpostato la mia password (allo stesso modo di una volta), sono stato in grado di inviare e-mail bene. Stavo ricevendo anche il messaggio 5.5.1.


5

Ho anche provato molte soluzioni ma apportare alcune modifiche funzionerà

host = smtp.gmail.com
port = 587
username = email@gmail.com
password = password
enabledssl = true

con smtpclient sopra i parametri funzionano in Gmail


5

Stavo ottenendo lo stesso errore e nessuna delle soluzioni di cui sopra mi ha aiutato.

Il mio problema era che stavo eseguendo il codice da un server remoto, che non era mai stato usato per accedere all'account Gmail.

Ho aperto un browser sul server remoto e da lì ho effettuato l'accesso a Gmail. Ha fatto una domanda di sicurezza per verificare che ero io poiché questa era una nuova posizione. Dopo aver eseguito il controllo di sicurezza sono stato in grado di autenticarmi tramite il codice.



4

Ho riscontrato questo stesso errore ( "Il server SMTP richiede una connessione protetta o il client non è stato autenticato. La risposta del server è stata: 5.5.1 Autenticazione richiesta. Ulteriori informazioni su" ) e ho scoperto che stavo usando la password sbagliata. Ho corretto le credenziali di accesso e ha inviato correttamente.

So che è tardi, ma forse questo aiuterà qualcun altro.


4

Un'altra cosa che ho scoperto è che devi cambiare la password almeno una volta. E prova a utilizzare una password di livello sicuro (non utilizzare lo stesso utente come password, 123456, ecc.)


4

Ancora un'altra possibile soluzione per te. Avevo problemi simili durante la connessione a Gmail tramite IMAP. Dopo aver provato tutte le soluzioni che ho trovato di cui leggerai qui e altrove su SO (ad esempio abilita IMAP, abilita un accesso meno sicuro alla tua posta, utilizzando https://accounts.google.com/b/0/displayunlockcaptcha e così via), ho effettivamente impostato un nuovo account Gmail ancora una volta.

Nel mio test originale, il primo account Gmail che avevo creato, mi ero collegato al mio account Gmail principale. Ciò ha comportato un comportamento irregolare in cui Google ha fatto riferimento a un account errato. Ad esempio, eseguendo https://accounts.google.com/b/0/displayunlockcaptcha aperto il mio account principale anziché quello che avevo creato allo scopo.

Quindi quando ho creato un nuovo account e non l'ho collegato al mio account principale, dopo aver seguito tutti i passaggi appropriati come sopra, ho scoperto che funzionava bene!

Non l'ho ancora confermato (cioè riprodotto), ma a quanto pare lo ha fatto per me ... spero che mi aiuti.


4
  1. Prima controlla l'impostazione del tuo account Gmail e attiva "Accesso per app meno sicure" inserisci qui la descrizione dell'immagine

Ti consigliamo vivamente di utilizzare un'app sicura, come Gmail, per accedere al tuo account. Tutte le app realizzate da Google soddisfano questi standard di sicurezza. L'uso di un'app meno sicura, d'altra parte, potrebbe rendere vulnerabile il tuo account. Per saperne di più.

  1. Impostato

    smtp.UseDefaultCredentials = false;

    prima

    smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);

4

Uno o più motivi ci sono per questi errori.

  • Accedi con Gmail (o qualsiasi altro if) nel tuo sistema locale.

  • Controlla anche l'app meno sicura e impostala su "Attiva" qui è il collegamento per GMAIL. https://www.google.com/settings/security/lesssecureapps

  • controlla EnableSsl nel tuo codice e-mail e impostalo anche su true.

    smtp.EnableSsl = true;
  • Controlla anche quale porta stai utilizzando attualmente. 25 è Global, ma puoi verificarlo anche per altri come 587. controlla qui. Tutte le comunicazioni SMTP avvengono su 25?

  • SE SEI IN REMOTO : controlla la risposta di Vlad Tamas sopra.


cosa succede se non voglio attivare le impostazioni dell'app meno sicure, come fanno gli altri client di posta elettronica a fare questo perché non posso fare lo stesso con c #?
user734028

3

Puoi anche connetterti tramite la porta 465, ma a causa di alcune limitazioni dello spazio dei nomi System.Net.Mail potresti dover modificare il tuo codice. Questo perché lo spazio dei nomi non offre la possibilità di stabilire connessioni SSL implicite. Questo è discusso su http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx e I hanno fornito un esempio di come utilizzare il CDO (Collaborative Data Object) in un'altra discussione ( GMail SMTP tramite errori C # .Net su tutte le porte ).


3

Ho risolto questo problema. Allo stesso modo quel messaggio viene utilizzato in più tipi di errore. Il mio problema era che avevo raggiunto il massimo di 500 mail inviate.

accedi all'account e prova manualmente a inviare una mail. Se il limite è stato raggiunto, ti informerà



2
smtp.Host = "smtp.gmail.com"; //host name
smtp.Port = 587; //port number
smtp.EnableSsl = true; //whether your smtp server requires SSL
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;

1

Cambia la tua password di Gmail e riprova, dopo dovrebbe funzionare.

Non so perché, ma ogni volta che cambi il tuo hosting devi cambiare la tua password.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.