/// <summary>
/// 发送邮件
/// </summary>
/// <param name="mailSubjct">邮件主题</param>
/// <param name="mailBody">邮件正文</param>
/// <param name="mailAddress">收件人</param>
/// <param name="mailFrom">发件人</param>
/// <param name="mailFromName">发件人用户名</param>
/// <param name="password">发件密码</param>
/// <param name="mailHost">SMTP服务器地址 </param>
/// <param name="mailPort">SMTP服务器端口</param>
/// <param name="flag">输出参数bool</param>
/// <returns></returns>
public static string sendMail(string mailSubjct, string mailBody, List<string> mailAddress, string mailFrom, string mailFromName, string password, string mailHost, int mailPort, out bool flag)
{
flag = true;
string str = string.Empty;
MailMessage msg = new MailMessage();

//msg.To.Add("YYY@qq.com");//收件人地址
Regex regex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
for (int i = 0; i < mailAddress.Count; i++)
{
if (regex.IsMatch(mailAddress[i]))
{
msg.To.Add(mailAddress[i]);
}
}
//msg.CC.Add("XXX@qq.com");//抄送人地址

msg.From = new MailAddress(mailFrom, mailFromName);//发件人邮箱,名称
msg.Subject = mailSubjct;//邮件标题
msg.SubjectEncoding = Encoding.UTF8;//标题格式为UTF8
msg.Body = mailBody;//邮件内容
msg.BodyEncoding = Encoding.UTF8;//内容格式为UTF8
msg.IsBodyHtml = true;//是否HTML形式发送

SmtpClient client = new SmtpClient();
client.Host = mailHost;// "smtp.qq.com";//SMTP服务器地址
if (mailPort != 0)
client.Port = mailPort;//SMTP端口,QQ邮箱填写587
client.EnableSsl = true;//启用SSL加密
client.Credentials = new NetworkCredential(mailFrom, password);//发件人邮箱账号,密码
client.Timeout = 10000; //超时时间
try
{
//qq邮箱和163邮箱都可以正常发送,使用公司的邮箱和smtp时需加上此段,以免出现“根据验证过程,远程证书无效”异常
ServicePointManager.ServerCertificateValidationCallback =
delegate (Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };

client.Send(msg);//发送邮件
}
catch (Exception exception)
{
str = exception.Message;
flag = false;
}
return str;
}

C#发送邮件异常:根据验证过程,远程证书无效,何解???的更多相关文章

  1. C#发送邮件异常:根据验证过程,远程证书无效

    今天在做发送邮件功能时,开始用qq邮箱和163邮箱都可以正常发送,后再改用我公司的邮箱和smtp时竟然报错了. 异常提示-----"根据验证过程,远程证书无效",后来通过查询资料解 ...

  2. asp.net使用wsdl文件调用接口,以及调用SSL接口报错“根据验证过程 远程证书无效”的处理

    1.调用wsdl接口,首先需要将wsdl文件转换为cs文件: 进入VS 开发人员命令提示行,输入如下命令: c:/Program Files/Microsoft Visual Studio 8/VC& ...

  3. [转]在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效

    该文原网址:http://www.cnblogs.com/xwgli/p/5487930.html 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效.   当访问 h ...

  4. XmlDocument.Load(url) url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。" "根据验证过程,远程证书无效。"

    XmlDocument.Load(url)  url是https远程时,报错" 基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系."   "根据验证过程, ...

  5. System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。

    好久没写博客了,今天突然遇到个神奇的问题. 做好的网站在win10上和Windows sever 2012 上都没有问题,搬到Windows sever 2003上就出现了这么一个错误: Server ...

  6. post请求远程url 报错“基础连接已经关闭...Authentication.AuthenticationException...远程证书无效”解决方案

    当我们有时用代码编写post请求url远程地址会报“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系. ---> System.Security.Authentication.A ...

  7. 在 .NET 中远程请求 https 内容时,发生错误:根据验证过程,远程证书无效。

    当访问 https 内容的时候,有时候经常会看到证书错误(不在操作系统的证书信任链中?)的提示,在浏览器中我们可以忽略错误的证书,继续访问网页内容. 但是在 .NET 程序中,需要由代码来判断是否忽略 ...

  8. The remote certificate is invalid according to the validation procedure 远程证书验证无效

    The remote certificate is invalid according to the validation procedure   根据验证过程中远程证书无效 I'm calling ...

  9. SmtpClient SSL 发送邮件异常排查

    上周使用 SmtpCliet 发送邮件测试,在服务端配置 SSL 465 / 993 情况 ,客户端使用 465 SSL 端口发送邮件异常,测试代码如下: System.Net.ServicePoin ...

随机推荐

  1. vue中mixins的使用

    与vuex的区别 经过上面的例子之后,他们之间的区别应该很明显了哈~ vuex:用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随 ...

  2. koa : Express出品的下一代基于Node.js的web框架

    https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...

  3. Learn golang: Top 30 Go Tutorials for Programmers Of All Levels

    https://stackify.com/learn-go-tutorials/ What is Go Programming Language? Go, developed by Google in ...

  4. 将 context node 中的内容 分配给 desing layer

    1 将 context node 中的内容 分配给 desing layer 选中context node 右键>assignment to design layer.

  5. cloud-api-service和cloud-iopm-web提交merge方法

    cloud-api-service应该push to '自己的分支',然后去gitserver请求合并 cloud-iopm-web(master分支)应该push to Upstream,然后去gi ...

  6. java串口通讯环境配置

    用java实现串口通信(windows系统下),配置如下: 1.comm.jar放置到 JAVA_HOME/jre/lib/ext;2.win32com.dll放置到 JAVA_HOME/bin;3. ...

  7. Node.js学习看这里:基础、进阶、文章

    Node.js是基于Chrome JavaScript运行时建立的一个平台,实际上它是对Google Chrome V8引擎进行了封装,它主要用于创建快速的.可扩展的网络应用. Node.js采用事件 ...

  8. sql server 函数的自定义

    创建用户定义函数.这是一个已保存 Transact-SQL 或公共语言运行时 (CLR) 例程,该例程可返回一个值.用户定义函数不能用于执行修改数据库状态的操作.与系统函数一样,用户定义函数可从查询中 ...

  9. (转载)Windows WMIC命令使用详解(附实例)

    原文地址:http://www.jb51.net/article/49987.htm 第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符.在WMIC命令行提示 ...

  10. Sql Server 生成连续时间段

    方法一: declare @StartTime datetime declare @EndTime datetime set @StartTime ='2019-02-1 00:00' set @En ...