是用微软自带的 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 加密注释掉就可以发送成功。如果启用了这段断面 就发送不了。高手帮忙。
- 2 回答
- 0 关注
- 689 浏览
添加回答
举报
0/150
提交
取消