当前位置: 首页 > 知识库问答 >
问题:

5.7.57 SMTP-客户端未通过身份验证以在MAIL from错误期间发送匿名邮件

韦昊焜
2023-03-14

我必须用我的网络应用程序发送邮件。给定下面显示< code >的代码,SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应是:

5.7.57 SMTP;客户端在邮件发送过程中未通过身份验证发送匿名邮件。

帮我找到一个合适的解决方案。非常感谢。

代码:

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

共有3个答案

王锐
2023-03-14

我花了很多时间在这上面,解决方案非常简单。我不得不使用我的“MX”作为主机和端口 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);
潘雅珺
2023-03-14

您似乎将< code >发件人地址作为< code >电子邮件地址传递,这不是一个正确的电子邮件地址。对于Office365,< code>From必须是Office365系统上的真实地址。

如果将您的电子邮件地址硬编码为< code>From和您的Office 365密码,您可以验证这一点。

当然,不要把它留在那里。

井斌斌
2023-03-14

@Reshma-如果您还没有弄清楚,以下是我尝试过的事情,它解决了同样的问题。

>

  • 确保您设置的网络凭据正确无误。例如,在我的情况下,由于它是办公室SMTP,用户ID必须与域名一起使用,而不是实际的电子邮件ID。

    您需要先将“使用默认凭据”设置为 false,然后再设置凭据。如果在此之后设置“使用默认凭据”,则会将网络凭据重置为空。

    希望对您有所帮助。

  •  类似资料: