using System.Net.Mail;
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="emailSub">邮件主题</param>
/// <param name="emailBody">邮件内容</param>
/// <param name="toMail">收件者</param>
/// <returns>返回发送的结果</returns>
public static string SendMail(string emailSub, string emailBody, string toMail)
{
string msg = string.Empty; MailMessage mail = new MailMessage(); mail.From = new MailAddress("[email protected]");
mail.To.Add(new MailAddress(toMail)); mail.Sender = new MailAddress("[email protected]"); mail.Subject = emailSub; mail.Body = emailBody;
mail.IsBodyHtml = true;
mail.Priority = MailPriority.Normal;
SmtpClient sc = new SmtpClient("pop3.c.com"); sc.Credentials = new NetworkCredential("[email protected]", "xxx");
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
sc.Send(mail);
msg = "发送成功!";
}
catch (SmtpException e)
{
msg = e.StatusCode + "_" + e.Message;
}
return msg;
}在localhost本机调试时,可以发送邮件,部署到2003服务器上,通过域名访问操作时,获取的情况是发送邮件失败,StatusCode是GeneralFailuremsdn上GeneralFailure的解释是
事务未能发生。当未能找到指定的 SMTP 主机时,会收到此错误。应该如何设置才行呢?
改为
mail.From = new MailAddress("[email protected]");写错了。
管理工具->管理您的服务器->添加或删除角色->下一步 然后你看看有没有正确配置
邮件服务器 不在此服务器上,不需要设置的,此服务器是应用服务器。//发送邮件的方式是网络,只要有网络就可以了。
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
收邮件smtp默认的是25
收邮件pop3默认的是110,
发邮件smtp默认的是25你写反了。
谢谢。但是为什么我配置在outlook里就可以发送,这和你说的有关系吗?我在本地也是可以发送的啊!就是把网站项目部署到自己的服务器上就不可以了,不知道是为什么!
已经安装了SMTP Service了。还是不行!