La réponse du serveur était: 5.7.57 SMTP; le Client N'a pas été authentifié pour envoyer du courrier anonyme pendant le courrier de

je dois envoyer du courrier en utilisant mon application web. Donné ci-dessous le code indiquant 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 erreur. Aidez-moi à trouver une bonne solution. Remercier.

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);
     }
  } 
 }
29
demandé sur Reshma 2015-05-20 10:20:56

10 réponses

Je ne suis peut-être pas un bon programmeur, mais vous semblez passer L'adresse de De comme "emailAddress" qui n'est pas une adresse de courriel appropriée et pour Office365 le De doit être une adresse réelle sur le système Office365.

vous pouvez valider que si vous codez votre adresse email comme le mot de passe de et votre bureau 365. Ne le laissez pas là bien sûr.

13
répondu Joe Vargas 2015-06-30 19:54:07

@Reshma-dans le cas où vous ne l'avez pas encore compris, voici ci-dessous les choses que j'ai essayé et il a résolu le même problème.

  1. assurez-vous que NetworkCredentials est correct. Par exemple, dans mon cas, puisque c'était office SMTP, l'ID utilisateur a dû être utilisé dans le NetworkCredential avec le nom de domaine et pas l'id email réel.

  2. vous devez d'abord définir "UseDefaultCredentials" à false, puis définir les justificatifs d'identité. Si vous définissez "UseDefaultCredentials" après cela, il réinitialise le Crédentieldu réseau à null.

j'Espère que ça aide.

15
répondu Navneet 2015-07-08 10:25:47

j'ai passé beaucoup trop de temps là-dessus et la solution était super simple. J'ai dû utiliser mon " MX " comme 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("test@test.com");
        message.Subject = "Test";
        message.CC.Add(new MailAddress("dude@good.com"));

        sClient.Send(message);
8
répondu Ron Rebennack 2016-05-24 14:28:51

deux raisons Principales seulement comme mentionné dans les commentaires ci-dessus

  1. NetworkCredentials que vous définissez doit être correcte. Vérifiez avec try en signant réellement dans le compte.
  2. Vous devez définir UseDefaultCredentials false en premier et ensuite définir les informations d'Identification Ou Mettre smtp.UseDefaultCredentials = false; au-dessus du smtp.Credentials assignment.
6
répondu Ankush 2016-02-23 08:22:06

j'avais le même problème.

Ajouter le domaine résolu..

mySmtpClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password", "domain.com")
6
répondu Zvi Redler 2016-11-02 12:55:47

il s'agit d'une vieille question, mais comme il s'agit du premier résultat dans google pour cette erreur, j'ai pensé que je voudrais mettre à jour mes progrès dans ce numéro.

j'ai passé trop peut heures sur cette question. Finalement, j'ai dû changer le mot de passe de mon compte Office 365 à quelques reprises jusqu'à ce que mon code réussisse à envoyer des courriels.

N'a pas eu à faire de changement de code.

2
répondu Spitz 2016-11-01 09:57:45

Si vous utilisez office 365, suivez ces étapes:

  1. vérifiez la durée d'expiration du mot de passe en utilisant Azure power shell: Get-MsolUser-All / select DisplayName, LastPasswordChangeTimeStamp
  2. changer 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
répondu Matteo Conta 2017-07-10 09:18:33

a commencé à travailler après avoir ajouté la propriété:

mail.smtp.starttls.enable=true

Utilisation:

mail.smtp.host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.user=xxx@example.com
mail.smtp.password=xxx
mail.smtp.from=yyy@example.com
2
répondu Justas 2017-09-14 11:34:01

j'ai changé le mot de passe Office365 et j'ai essayé d'envoyer un email test et ça a fonctionné comme un charme pour moi.

j'ai utilisé l'option front end (database mail option) et les paramètres comme smtp.office365.com port numéro 587 et vérifié l'option de connexion sécurisée. utilisez l'authentification de base et stockez les justificatifs d'identité. Espérons que cela s'avère utile pour quelqu'un.

1
répondu voz 2017-07-13 05:10:58

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

0
répondu horatius83 2017-12-15 14:42:31