web-dev-qa-db-fra.com

5.7.57 SMTP - Le client n’était pas authentifié pour envoyer un courrier anonyme pendant l’erreur MAIL FROM

Je dois envoyer des mails en utilisant mon application web. Étant donné le code ci-dessous montrant The SMTP server requires a secure connection or the client was not authenticated. The server response was: 

5.7.57 SMTP; Le client n'a pas été authentifié pour envoyer un courrier anonyme pendant MAIL FROM.

Aidez-moi à trouver une solution appropriée. Je vous remercie.

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

Je ne suis peut-être pas un bon programmeur, mais vous semblez passer l'adresse De sous la forme "adresseEmail", qui n'est pas une adresse électronique correcte. Pour Office365, l'adresse doit être une véritable adresse sur le système Office365.

Vous pouvez le valider si vous codifiez en dur votre adresse de messagerie en tant que de et votre mot de passe Office 365. Ne le laissez pas là bien sûr.

18
Joe Vargas

@ Reshma- Si vous ne l'avez pas encore compris, voici les choses que j'ai essayées et qui ont résolu le même problème.

  1. Assurez-vous que NetworkCredentials que vous avez défini est correct. Par exemple, dans mon cas, puisqu'il s'agissait du bureau SMTP, l'ID utilisateur devait être utilisé dans NetworkCredential avec le nom de domaine et non l'ID de messagerie.

  2. Vous devez d'abord définir "UseDefaultCredentials" sur false, puis définir les informations d'identification. Si vous définissez "UseDefaultCredentials" après cela, le NetworkCredential est réinitialisé sur null.

J'espère que ça aide.

18
Navneet

J'ai passé beaucoup trop de temps là-dessus et la solution était très simple… .. Je devais utiliser mon «MX» en tant qu'hôte et port 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);
10
Ron Rebennack

J'ai l'habitude d'avoir le même problème.

Ajouter le domaine résolu.

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

Principales raisons uniquement mentionnées dans les commentaires ci-dessus

  1. NetworkCredentials que vous définissez doit être correct. Vérifiez avec essayez réellement de vous connecter au compte.
  2. Vous devez d'abord définir UseDefaultCredentials sur false, puis définir les informations d'identification Ou Placez smtp.UseDefaultCredentials = false; au-dessus du smtp.Credentials assignment.
6
Ankush

C'est une vieille question mais comme c'est le premier résultat dans Google pour cette erreur, j'ai pensé mettre à jour mes progrès dans ce numéro.

J'ai passé beaucoup trop de temps sur cette question. Finalement, j'ai dû changer le mot de passe de mon compte Office 365 plusieurs fois jusqu'à ce que mon code parvienne à envoyer des courriels.

N'a pas eu à faire de changements dans le code.

3
Spitz

Commencé à travailler après avoir ajouté une propriété:

mail.smtp.starttls.enable=true

En utilisant:

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

Si vous utilisez Office 365, procédez comme suit:

  1. vérifiez l'heure d'expiration du mot de passe à l'aide de Azure power Shell: Get-MsolUser -All | sélectionnez DisplayName, LastPasswordChangeTimeStamp
  2. Changez le mot de passe en utilisant un nouveau mot de passe (pas l'ancien). Vous pouvez éventuellement revenir à l'ancien mot de passe, mais vous devez le changer deux fois.

J'espère que ça aide! 

2
Matteo Conta

Dans mon cas, l'authentification à 2 facteurs était activée pour le compte FROM dans Office 365. Une fois cette opération désactivée, le courrier électronique a été envoyé avec succès.

1
Daniela

J'ai changé le mot de passe Office365 et essayé d'envoyer un e-mail test. Cela a fonctionné à merveille pour moi.

J'ai utilisé l'interface frontale (option courrier de la base de données) et les paramètres sous le numéro de port 587 de smtp.office365.com, ainsi que l'option de connexion sécurisée. utiliser l'authentification de base et stocker les informations d'identification. J'espère que cela s'avère utile pour quelqu'un.

1
voz

Définissez les identifiants d’utilisateur défectueux sur "True" smtp.UseDefaultCredentials = True;

Avant cela, vous entrez vos informations d'identification Smtp.Credentials = new NetworkCredential (fromAddress, fromPassword);

Cela devrait fonctionner très bien

Dans mon cas, j'utilisais le constructeur MailMessage qui prend deux chaînes (to, from) et obtient la même erreur. Lorsque j'ai utilisé le constructeur par défaut, puis ajouté un objet MailAddress à la propriété To du MailMessage, cela a bien fonctionné. 

0
horatius83