在实时服务器上发送电子邮件时出错
本文关键字:电子邮件 出错 实时 服务器 | 更新日期: 2023-09-27 18:36:03
我正在使用 c# 发送电子邮件:
protected void SendEmailToVisitor(string Name, string Email, string Contact, string Message, string Subject)
{
string myEmail = ConfigurationManager.AppSettings["Email"];
MailMessage objMail = new MailMessage();
objMail.From = new MailAddress(myEmail);
objMail.Subject = "Chanderraj.com";
objMail.To.Add(Email);
objMail.IsBodyHtml = true;
StringBuilder emailMessage = new StringBuilder();
emailMessage.Append("<h2>Hi, "+Name+",</h2> <br/>");
emailMessage.Append("Thank you for writing us. <br/><br/><br/>");
emailMessage.Append("Best wishes from http://www.chanderraj.com");
objMail.Body = emailMessage.ToString();
SmtpClient objSmtpClient = new SmtpClient();
objSmtpClient.UseDefaultCredentials = false;
// objSmtpClient.EnableSsl = true;
objSmtpClient.Send(objMail);
this.Reset();
lblSent.Text = Name + ", your message sent.";
}
<system.net>
<mailSettings >
<smtp>
<network host="smtp.gmail.com" userName="chanderraj1989@gmail.com" enableSsl="true" password="xxxxxxxxxx" port="587" />
</smtp>
</mailSettings>
如果我在配置中添加 enableSl,它会在页面加载之前显示配置错误:
无法识别的属性"启用SSL"。
这可能是由于服务器上的旧版本.NET。
因此,我从配置中删除了enablSsl并将其放入代码中,然后它显示:
SMTP 服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1 需要身份验证。
是的,对于 .NET 3 及更早版本,您确实不能在配置文件中使用 enableSSL 属性。对于您的问题,您可以添加行,
SmtpClient objSmtpClient = new SmtpClient();
objSmtpClient.EnableSsl = true; // Add this line of code. Hope this works
还要在配置文件中添加此行,
<smtp deliveryMethod="Network" from="test@gmail.com">
对于 .NET 4:是的,您可以使用在配置部分添加启用 SSL 标记。
不是绝对的解决方案,但它奏效了。
因为我有一个域 chanderraj.com 并且域可以选择创建像 info@chanderraj.com 这样的电子邮件。所以我创建了一个并在我的配置文件中指定来代替Gmail ID和密码(有问题)。