是用微软自带的 System.Net.Mail 来发送邮件。
代码如下。
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="strSmtpServer">邮件服务器地址</param>
/// <param name="UserName">发送人邮件用户名只需前面部分 如 123@qq.com 123 即为用户名</param>
/// <param name="Password">邮件密码</param>
/// <param name="strFrom">发送方邮件地址</param>
/// <param name="strto">接收方邮件地址</param>
/// <param name="strSubject">主题</param>
/// <param name="strBody">内容</param>
/// <param name="authentication">是否进行身份验证</param>
/// <returns>bool</returns>
public static bool SendToMail(string strSmtpServer, string UserName, string Password, string strFrom, string strto, string strSubject, string strBody)
{
try
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(strSmtpServer);
client.UseDefaultCredentials = true;//是否身份验证
client.Credentials = new System.Net.NetworkCredential(UserName, Password);//身份验证账号密码 主要账号无需后缀名如 123@qq.com 只需填写123 即可。
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//client.EnableSsl = true;
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strto, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");
message.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
message.IsBodyHtml = true;
message.Priority = System.Net.Mail.MailPriority.High;
client.Send(message);
return true;
}
catch (Exception ex)
{
ErrorLog.WriteError(ex.Message.ToString());
return false;
}
}
如果将 //client.EnableSsl = true; Ssl 加密注释掉就可以发送成功。如果启用了这段断面 就发送不了。高手帮忙。
好像用ssl要设置端口号.
查看一下帮助文档对该类的说明。