我有一个Web应用程序,我将其设置为使用MailHelper.cs和web.config设置通过gmail帐户自动发送电子邮件。我的应用程序已经工作了10天,现在它给了我错误并在发送电子邮件时停止我处理该错误是“发送邮件失败”。内部异常是“尝试对无法访问的主机进行套接字操作216.239.59.109:587”这里是代码:
<mailSettings>
<smtp from="myemail@gmail.com">
<network host="smtp.gmail.com"
port="587"
userName="myemail@gmail.com"
password="mypass"/>
</smtp>
</mailSettings>
using System.Net.Mail;
public class MailHelper
{
/// <summary>
/// Sends an mail message
/// </summary>
/// <param name="from">Sender address</param>
/// <param name="to">Recepient address</param>
/// <param name="bcc">Bcc recepient</param>
/// <param name="cc">Cc recepient</param>
/// <param name="subject">Subject of mail message</param>
/// <param name="body">Body of mail message</param>
public static void SendMailMessage(string from, string to, string bcc, string cc, string subject, string body)
{
// Instantiate a new instance of MailMessage
MailMessage mMailMessage = new MailMessage();
// Set the sender address of the mail message
mMailMessage.From = new MailAddress(from);
// Set the recepient address of the mail message
mMailMessage.To.Add(new MailAddress(to));
// Check if the bcc value is null or an empty string
if ((bcc != null) && (bcc != string.Empty))
{
// Set the Bcc address of the mail message
mMailMessage.Bcc.Add(new MailAddress(bcc));
}
// Check if the cc value is null or an empty value
if ((cc != null) && (cc != string.Empty))
{
// Set the CC address of the mail message
mMailMessage.CC.Add(new MailAddress(cc));
} // Set the subject of the mail message
mMailMessage.Subject = subject;
// Set the body of the mail message
mMailMessage.Body = body;
// Set the format of the mail message body as HTML
mMailMessage.IsBodyHtml = true;
// Set the priority of the mail message to normal
mMailMessage.Priority = MailPriority.Normal;
// Instantiate a new instance of SmtpClient
SmtpClient mSmtpClient = new SmtpClient();
mSmtpClient.Host = "smtp.gmail.com";
mSmtpClient.Port = 587;
mSmtpClient.EnableSsl = true;
// Send the mail message
mSmtpClient.Send(mMailMessage);
}
}
答案 0 :(得分:0)
我强烈建议您安装Elmah(或在配置文件中启用完整的异常信息),以便在ASP.NET应用程序中捕获异常。一旦你这样做,你应该能够提供有关异常的更多信息,然后你可以在这里复制。
异常(我在这里更重要的是猜测InnerException属性)可能会告诉你(或我们)需要的一切。
根据评论,您似乎在主机上遇到问题,允许您访问该地址(或者端点拒绝您)。这似乎是配置/主机问题而不是库的问题。
您可以通过计算机上的控制台应用程序使用它吗?
答案 1 :(得分:0)
正如casperOne编辑中所述,这似乎不是库问题,而是主机/ gMail服务器问题。
等式中的一个方面是阻止沟通。我倾向于指责主持人,而不是gMail。
在此操作开始之前,您可以发送多少封电子邮件? 谁是你的主人?
许多主持人限制他们允许您发送的外发电子邮件数量,因为他们不希望您让他们看起来像垃圾邮件发送者。