2015-05-20 38 views
23

Devo inviare posta usando la mia applicazione web. Dato sotto il codice che mostra l'errore The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM. Aiutami a trovare una soluzione adeguata. Grazie.La risposta del server era: 5.7.57 SMTP; Il cliente non è stato autenticato per inviare posta anonima durante MAIL DAL

Codice:

protected void btnsubmit_Click(object sender, EventArgs e) 
{ 

    Ticket_MailTableAdapters.tbl_TicketTableAdapter tc; 
    tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter(); 
    DataTable dt = new DataTable(); 
    dt = tc.GetEmail(dpl_cate.SelectedValue); 
    foreach (DataRow row in dt.Rows) 
    { 
    string eml = (row["Emp_Email"].ToString()); 
    var fromAddress = "emailAddress"; 
    var toAddress = eml; 
    const string fromPassword = "*****"; 
    string body = "Welcome.."; 
// smtp settings 
    var smtp = new System.Net.Mail.SmtpClient(); 
     { 
     smtp.Host = "smtp.office365.com"; 
     smtp.Port = 587; 
     smtp.EnableSsl = true; 

     smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
     smtp.Credentials = new NetworkCredential(fromAddress, fromPassword); 
     smtp.UseDefaultCredentials = false; 
     smtp.Timeout = 600000; 
     } 
    // Passing values to smtp object 
    smtp.Send(fromAddress, toAddress, subject, body); 
    } 
    } 
} 
+1

perché non aumentare il timeout? –

+0

Hai reso anonimo questo messaggio o stai effettivamente tentando di inviare su office.com con quel login? – fk2

+0

@reshma, Quali modifiche hai apportato? Di fronte allo stesso problema. –

risposta

10

io potrebbe non essere un buon programmatore, ma lei sembra essere passando l'indirizzo Da come "emailAddress", che non è un indirizzo email corretto e per Office365 il da esigenze di essere un vero indirizzo sul sistema Office365.

È possibile verificare che se si esegue l'hardcod dell'indirizzo e-mail come password da e per l'ufficio 365. Non lasciarlo lì, naturalmente.

14

@ Reshma- Nel caso in cui non l'hai ancora capito, ecco di seguito le cose che ho provato e ha risolto lo stesso problema.

  1. Assicurarsi che i NetworkCredentials impostati siano corretti. Ad esempio, nel mio caso dal momento che era SMTP ufficio, l'ID utente doveva essere utilizzato in NetworkCredential insieme al nome di dominio e non all'ID email effettivo.

  2. È necessario impostare "UseDefaultCredentials" su false prima e quindi impostare le credenziali. Se si imposta "UseDefaultCredentials" dopo di ciò, Reimposta NetworkCredential su null.

Spero che sia d'aiuto. solo

+4

Questo è tutto! Non sapevo che "UseDefaultCredentials" cancella le credenziali. Grazie! – nwestfall

4

due principali motivi, come indicato nei commenti di cui sopra

  1. NetworkCredentials impostate dovrebbe essere corretto. Verifica con prova effettivamente l'accesso all'account.
  2. è necessario impostare UseDefaultCredentials false e poi impostare credenziali O Ponga smtp.UseDefaultCredentials = false; sopra il smtp.Credentials assignment.
+0

Numero 2 ha funzionato per me. – SANM2009

7

Ho passato troppo tempo su questo e la soluzione era semplicissima. ho dovuto usare la mia "MX", come l'host e la porta 25.

 var sClient = new SmtpClient("domain-com.mail.protection.outlook.com"); 
     var message = new MailMessage(); 

     sClient.Port = 25; 
     sClient.EnableSsl = true; 
     sClient.Credentials = new NetworkCredential("user", "password"); 
     sClient.UseDefaultCredentials = false; 

     message.Body = "Test"; 
     message.From = new MailAddress("[email protected]"); 
     message.Subject = "Test"; 
     message.CC.Add(new MailAddress("[email protected]")); 

     sClient.Send(message); 
+1

Questo ha funzionato per me. controlla questo articolo Microsoft https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365- 69f58e99-c550-4274-ad18-c805d654b4c4? Ui = it-US & rs = it-it & ad = US – wajira000

+0

Ciao per me anche io ho dato una password sbagliata, non darà errore. –

+0

Questo ha funzionato per me, ma dovevo quindi andare su https://sender.office.com per rimuovere il mio indirizzo IP –

2

Questa è una vecchia questione, ma dal momento che questo è il primo risultato di Google per questo errore, ho pensato di aggiornare i miei progressi in questo problema.

Ho passato troppo ore a questo problema. Alla fine ho dovuto cambiare la password del mio account Office 365 poche volte finché il mio codice non è riuscito a inviare e-mail.

Non è necessario apportare modifiche al codice.

+0

Ho cambiato solo una volta. Mi ha detto che la password è scaduta quando provo ad accedere. –

5

Io uso per avere lo stesso problema.

Aggiungi il dominio risolto ..

mySmtpClient.Credentials = New System.Net.NetworkCredential("[email protected]", "password", "domain.com") 
+1

Questa è la soluzione corretta per me. Ho avuto un'applicazione in esecuzione, inviando email giornaliere per oltre un anno, improvvisamente ha smesso di funzionare. La modifica per risolvere il problema è questa, anche se le mie credenziali di rete non sono in realtà la mia email, questa correzione ha funzionato. – EJA

2

Se si utilizza Office 365 seguire questa procedura:

  1. controllo il tempo di scadenza della password usando le coperture potere Azure: Get-MsolUser -Tutte | selezionare DisplayName, LastPasswordChangeTimeStamp
  2. Modificare la password utilizzando una nuova password (non quella precedente). Alla fine puoi tornare alla vecchia password ma devi cambiarla due volte.

Spero che sia d'aiuto!

1

Ho cambiato la password di Office365 e poi ho provato a inviare una email di prova e ha funzionato come un incantesimo per me.

Ho utilizzato il front-end (opzione di posta del database) e le impostazioni come smtp.office365.com numero di porta 587 e ho controllato l'opzione di connessione sicura. utilizzare l'autenticazione di base e memorizzare le credenziali. Spero che questo risulti utile per qualcuno.

1

iniziato a lavorare dopo proprietà aggiungendo:

mail.smtp.starttls.enable=true 

Usando:

mail.smtp.host=smtp.office365.com 
mail.smtp.port=587 
mail.transport.protocol=smtp 
mail.smtp.auth=true 
mail.smtp.starttls.enable=true 
[email protected] 
mail.smtp.password=xxx 
[email protected] 
0

Nel mio caso ho usato il costruttore MailMessage che prende due stringhe (a, da) e ottenere lo stesso errore. Quando ho utilizzato il costruttore predefinito e aggiunto un oggetto MailAddress alla proprietà To di MailMessage, ha funzionato correttamente.

Problemi correlati