【发布时间】:2016-04-11 15:01:45
【问题描述】:
当我删除 MailAddress() 的 DisplayName 属性时,下面是我的代码,它工作正常,但接收端邮件在显示名称上显示 EmailID,例如 emailID@gmail.com。
MailMessage mail = new MailMessage();
mail.From = new System.Net.Mail.MailAddress("emailID@domainName.com");
// The important part -- configuring the SMTP client
SmtpClient smtp = new SmtpClient();
smtp.Port = 587; // [1] You can try with 465 also, I always used 587 and got success
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; // [2] Added this
smtp.UseDefaultCredentials = false; // [3] Changed this
smtp.Credentials = new NetworkCredential(mail.From.ToString(), "password"); // [4] Added this. Note, first parameter is NOT string.
smtp.Host = "smtp.gmail.com";
mail.IsBodyHtml = true;
mail.Subject = Subject;
mail.Body = Body;
mail.To.Add(new MailAddress(To));
smtp.Send(mail);
mail.Dispose();
当我添加 MailAddress() 的显示名称时,我收到此错误消息。
System.Net.Mail.SmtpException:SMTP 服务器需要安全 连接或客户端未通过身份验证。服务器响应 是:5.5.1 需要身份验证。了解更多信息 System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, 字符串响应)在 System.Net.Mail.SmtpTransport.SendMail(MailAddress 发件人,MailAddressCollection 收件人,字符串传递通知, Boolean allowUnicode、SmtpFailedRecipientException& 异常)在 System.Net.Mail.SmtpClient.Send(MailMessage message) at ***
我哪里错了?
【问题讨论】: