2012-12-08 43 views
10

Sto provando a inviare e-mail con l'indirizzo del mio sito Web da un'applicazione C#.
Questo ha funzionato bene per diversi mesi fino a poco tempo fa. (Forse il mio fornitore cambia alcune cose o qualcun impostazioni altro cambiati)System.Net.Mail.SmtpException: il server SMTP richiede una connessione sicura o il client non è stato autenticato

Ecco il codice:

private void sendEmail(Email invite) { 
      MailMessage mail = new MailMessage(); 
      SmtpClient SmtpServer = new SmtpClient(smtpServerName); 
      mail.From = new MailAddress(emailUsername); 

      mail.To.Add(invite.RecipientEmail); 
      mail.Subject = invite.MessageSubject; 
      mail.Body = invite.MessageBody; 

      SmtpServer.UseDefaultCredentials = false; 
      SmtpServer.Port = 587; 
      SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword); 
//   SmtpServer.EnableSsl = true; 
      SmtpServer.Send(mail); 
     } 

Ecco l'errore:

The SMTP server requires a secure connection or the client was not authenticated. The server response was: SMTP authentication is required.

Guardando le altre domande che ho provato quello che hanno suggerito, a marca SmtpServer.EnableSsl = true. Questo non ha funzionato affatto. Ha dato il seguente:

System.Net.Mail.SmtpException: Server does not support secure connections.

Suppongo che dovrei disabilitare SSL e farlo come prima.

Qualche suggerimento su come far funzionare di nuovo l'e-mail?

EDIT
ho provato senza SmtpServer.UseDefaultCredentials = false;
Ho provato con l'impostazione vero: SmtpServer.UseDefaultCredentials =true;
Ho provato commentando che la linea con il seguente //SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword);

+0

Mi raccomando di controllare le impostazioni di connessione del client del vostro provider, per assicurarvi di aver specificato le cose correttamente, come la porta, ecc. Controllate anche il vostro utente/pass, in quanto possono causare quel messaggio di errore. –

+0

Queste credenziali funzionavano prima, ma sono in procinto di farlo. Non fa male essere scrupolosi. Grazie! – Adrian

+0

Non riesco a ricordare con certezza, ma penso di aver ricevuto quell'errore mentre stavo passando le credenziali e il server non le richiedeva. Potresti provare a commentare la riga .Credentials e vedere cosa succede. –

risposta

6

Questo messaggio di errore è in genere causato da uno dei seguenti modi:

  • impostazioni di connessione corrette, come la porta sbagliata specificata per la connessione protetta o non protetta
  • credenziali errate. Vorrei verificare la combinazione di nome utente e password, per assicurarmi che le credenziali siano corrette.
6

Penso che tu abbia per impostare DeliveryMethod = SmtpDeliveryMethod.Network

questo è attualmente funzionante nel mio PC, ho solo controllato, lavorando bene, prova questo

using System.Net; 
using System.Net.Mail; 

var fromAddress = new MailAddress("[email protected]", "From Name"); 
var toAddress = new MailAddress("[email protected]", "To Name"); 
const string fromPassword = "fromPassword"; 
const string subject = "Subject"; 
const string body = "Body"; 

var smtp = new SmtpClient 
      { 
       Host = "smtp.gmail.com", 
       Port = 587, 
       EnableSsl = true, 
       DeliveryMethod = SmtpDeliveryMethod.Network, 
       UseDefaultCredentials = false, 
       Credentials = new NetworkCredential(fromAddress.Address, fromPassword) 
      }; 
using (var message = new MailMessage(fromAddress, toAddress) 
        { 
         Subject = subject, 
         Body = body 
        }) 
{ 
    smtp.Send(message); 
} 
1

Se sei sicuro che il tuo nome utente e la password sono corretti, ma ottieni ancora errori, significa che Gmail ha bloccato la tua applicazione.

È necessario selezionare il pulsante di opzione "Accendi" in the following link relevant to your gmail account. Funzionerebbe quindi bene.

Problemi correlati