使用SMTP邮件传输协议发送邮件出错
做了一个发送邮件的界面,测试时出现“发送邮件失败”,而且需要非常长的事件才会提示错误,这是什么原因了,下面是代码,各路高手帮忙看看!!!
MailMessage message = new MailMessage();
message.From = new MailAddress("970815436@qq.com", "任浮生", Encoding.GetEncoding(936));
//收件人邮箱地址可以是多个以实现群发
message.To.Add(MessageTo);
message.Subject = MessageSubject;
message.Body = MessageBody;
//是否为html格式
message.IsBodyHtml = false;
//发送邮件的优先等级
message.Priority = MailPriority.High;
SmtpClient sc = new SmtpClient();
//指定发送邮件的服务器地址或IP,根据不同的邮件服务商,写不同的服务器名
//smtp.Sina.com
sc.DeliveryMethod = SmtpDeliveryMethod.Network;
sc.Host = "smtp.qq.com";
//指定发送邮件端口
sc.Port = 425;
sc.UseDefaultCredentials = true;
sc.EnableSsl = true;
//指定登录服务器的用户名和密码
sc.Credentials = new System.Net.NetworkCredential("username", "passWord");
try
{
//发送邮件
sc.Send(message);
}
catch (Exception e)
{
Response.Write(e.Message);
return false;
}
return true;
------解决方案--------------------using System.Web.Mail;
/// <summary>
/// 发送邮件的方法
/// </summary>
/// <param name="toEmail">邮件接收地址</param>
/// <param name="fromEmail">邮件发送地址</param>
/// <param name="subject">邮件主题</param>
/// <param name="body">邮件内容</param>
/// <param name="userName">发送邮件用户名</param>
/// <param name="password">发送邮件密码</param>
/// <param name="smtpHost">smtp服务器</param>
public void SendEmail(string toEmail, string fromEmail, string subject, string body, string userName, string password, string smtpHost)
{
//设置邮件发送对象
MailMessage mailObj = new MailMessage();
// 设置邮件的发送地址
mailObj.From = fromEmail;
//设置邮件的接收地址
mailObj.To = toEmail;
//设置邮件发送的主题
mailObj.Subject = subject;
//设置邮件发送的内容
mailObj.Body = body;
// html格式的邮件
mailObj.BodyFormat = MailFormat.Html;
// 设置为高级优先权
mailObj.Priority = System.Web.Mail.MailPriority.High;
//验证
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName); //用户名
mailObj.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password); //密码
//使用SmtpMail对象发送邮件
SmtpMail.SmtpServer = smtpHost;
SmtpMail.Send(mailObj);
}
------解决方案--------------------貌似这个在本地是测试不通的,LZ将这段代码放到服务器上去跑跑看