C# SMTP 邮件发送之QQ邮箱篇

邮件发送大家都已经非常熟悉了,微软自带的System.Net.Mail也很好用,那为什么还要说呢?


QQ邮箱的SMTP以前是非SSL,用未加密的25端口,后来发送都改成SSL了,端口为465或587(实测587是连不上的)。网上查到System.Net.Mail支持Explicit SSL,但是不支持Implicit SSL。简单来说,就是System.Net.Mail不能支持像QQ邮箱这样的加密的SSL,所以我们得改一下,可以用System.Web.Mail这个比较旧的类。


虽然是过时了,但是还是可以完成我们的需求。这里登陆密码要注意:如果是一般账号,要用授权码(下面会说明设置);企业账号用登录密码,代码如下:

        System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
        try
        {
            mail.To = "接收的邮箱";
            mail.From = "发送的邮箱";
            mail.Subject = "这是主题";
            mail.BodyFormat = System.Web.Mail.MailFormat.Html;
            mail.Body = "这是内容";

            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //身份验证
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From); //邮箱登录账号,这里跟前面的发送账号一样就行
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "********"); //这个密码要注意:如果是一般账号,要用授权码;企业账号用登录密码
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//SSL加密
            System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com";    //企业账号用smtp.exmail.qq.com
            System.Web.Mail.SmtpMail.Send(mail);

            //邮件发送成功
        }
        catch (Exception ex)
        {
            //失败,错误信息:ex.Message;
        }


QQ邮箱要设置一下:



如果是普通账号,要生成授权码:


  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值