it-swarm.com.de

5.7.57 SMTP - Client wurde während des MAIL FROM-Fehlers nicht für das Senden anonymer E-Mails authentifiziert

Ich muss Mails über meine Webanwendung versenden. Der untenstehende Code zeigt The SMTP server requires a secure connection or the client was not authenticated. The server response was:

5.7.57 SMTP; Client wurde nicht authentifiziert, um anonyme E-Mails während MAIL FROM zu senden.

Hilf mir, eine richtige Lösung zu finden. Vielen Dank.

Code:

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);
     }
  } 
 }
32
Reshma

Ich bin zwar kein guter Programmierer, aber Sie scheinen die Absenderadresse als "emailAddress" zu übergeben, die keine richtige E-Mail-Adresse ist. Für Office365 muss der Absender eine echte Adresse im Office365-System sein.

Sie können dies überprüfen, wenn Sie Ihre E-Mail-Adresse als Absender und Ihr Office 365-Kennwort fest codieren. Lass es natürlich nicht dort.

18
Joe Vargas

@ Reshma- Falls du es noch nicht gedacht hast, hier sind die Dinge, die ich ausprobiert habe und es wurde das gleiche Problem gelöst.

  1. Stellen Sie sicher, dass die von Ihnen festgelegten NetworkCredentials korrekt sind. In meinem Fall musste die Benutzer-ID in NetworkCredential zusammen mit dem Domänennamen und nicht der tatsächlichen E-Mail-ID verwendet werden, da es sich um Office SMTP handelte.

  2. Sie müssen "UseDefaultCredentials" zuerst auf "false" setzen und dann "Credentials" festlegen. Wenn Sie danach "UseDefaultCredentials" festlegen, wird NetworkCredential auf null zurückgesetzt.

Ich hoffe es hilft.

18
Navneet

Ich habe viel zu viel Zeit damit verbracht und die Lösung war super einfach ... Ich musste meinen "MX" als Host und Port 25 verwenden.

        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);
10
Ron Rebennack

Ich habe das gleiche Problem.

Fügen Sie die Domain hinzu.

mySmtpClient.Credentials = New System.Net.NetworkCredential("[email protected]", "password", "domain.com")
9
Zvi Redler

Die zwei Hauptgründe, die nur in den obigen Kommentaren erwähnt wurden

  1. Die von Ihnen festgelegten NetworkCredentials sollten korrekt sein. Stellen Sie sicher, dass Sie sich tatsächlich beim Konto anmelden.
  2. Sie müssen zuerst UseDefaultCredentials auf false setzen und dann Anmeldeinformationen festlegen Oder Platzieren Sie smtp.UseDefaultCredentials = false; über dem smtp.Credentials assignment.
6
Ankush

Dies ist eine alte Frage, aber da dies das erste Ergebnis bei Google für diesen Fehler ist, dachte ich, ich würde meinen Fortschritt in diesem Problem aktualisieren.

Ich habe viel zu viele Stunden damit verbracht. Am Ende musste ich das Kennwort meines Office 365-Kontos einige Male ändern, bis mein Code das Versenden von E-Mails erfolgreich abgeschlossen hat.

Musste keine Änderungen am Code vornehmen.

3
Spitz

Arbeitete nach dem Hinzufügen von Eigenschaften:

mail.smtp.starttls.enable=true

Mit:

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]
2
Justas

Wenn Sie Office 365 verwenden, gehen Sie folgendermaßen vor:

  1. Überprüfen Sie die Ablaufzeit des Kennworts mit der Azure Power Shell: Get-MsolUser-All | Wählen Sie DisplayName, LastPasswordChangeTimeStamp aus
  2. Ändern Sie das Passwort mit einem neuen Passwort (nicht dem alten). Sie können eventuell zum alten Passwort zurückkehren, müssen es jedoch zweimal ändern.

Ich hoffe es hilft! 

2
Matteo Conta

In meinem Fall wurde die 2-Faktor-Authentifizierung für das FROM-Konto in Office 365 aktiviert. Sobald dies deaktiviert war, wurde die E-Mail erfolgreich gesendet.

1
Daniela

Ich habe das Office365-Kennwort geändert und dann versucht, eine Test-E-Mail zu senden, und es hat für mich wie ein Zauber funktioniert.

Ich habe das Frontend (Datenbank-E-Mail-Option) und die Einstellungen als Portnummer 587 von smtp.office365.com verwendet und die Option für die sichere Verbindung geprüft. Verwenden Sie die Basisauthentifizierung und speichern Sie die Anmeldeinformationen. Hoffe, das ist für jemanden nützlich.

1
voz

Legen Sie für den Benutzer defauilt credencials "True" .__ fest. smtp.UseDefaultCredentials = True;

Vorher geben Sie Ihren Berechtigungsnachweis ein Smtp.Credentials = new NetworkCredential (fromAddress, fromPassword);

Das sollte gut funktionieren

In meinem Fall habe ich den MailMessage-Konstruktor verwendet, der zwei Zeichenfolgen (von, zu) übernimmt und den gleichen Fehler erhält. Wenn ich den Standardkonstruktor verwendet und dann ein MailAddress-Objekt zur To-Eigenschaft der MailMessage hinzugefügt habe, funktionierte es einwandfrei. 

0
horatius83