2

我正在使用 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> 

如果我在配置中添加 enableSsl,它会在页面加载之前显示配置错误:
无法识别的属性“enableSsl”。
这可能是由于服务器上的 .NET 版本较旧。

因此,我从配置中删除了 enablSsl 并将其放入代码中,然后显示:

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。

4

2 回答 2

0

不是绝对的解决方案,但它有效。
因为我有一个域 chanderraj.com 并且域可以选择创建像 info@chanderraj.com 这样的电子邮件。所以我创建了一个并在我的配置文件中指定了 Gmail id 和密码(显示问题)。

于 2013-12-11T10:32:36.900 回答
0

是的,对于 .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:是的,您可以使用在配置部分添加 enableSSL 标记。

于 2013-10-18T04:46:03.470 回答