C# SMTP发邮件不支持465端口的解决方案,网易企业邮箱
2021/11/25 11:10:54
本文主要是介绍C# SMTP发邮件不支持465端口的解决方案,网易企业邮箱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、问题解惑,为什么465发送失败
查阅资料得知,.net 的自带组件System.Net.Mail发送邮件支持Explicit SSL但是不支持Implicit SSL,国内大部门邮件服务器都是Implicit SSL,所以无法通过465端口发邮件
有人说了,那干嘛要用呢,我用25不好好的么,为甚恶魔不用25呢?
这个问题问得好,很多云服务器像阿里、腾讯购买的新机都是把25端口封禁的,想要用25端口需要手动申请解封,据阿里工作客服所说,审核通过率感人
那么今天就记录一下如何使用465端口成功发邮件
二、解决方案
使用MailKit
需要NuGet两个包MimeKit、MailKit
using MailKit.Net.Smtp;
using MimeKit;
using System;
using System.IO;
public int SendVcodeByEmail(string email)
{
Regex emailRegex = new Regex(@"^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.]){1,2}[A-Za-z\d]{2,5}$");
if (!emailRegex.IsMatch(email)) throw new MyException(_localizer["邮箱格式非法"]); //Illegal mailbox format
int.TryParse(config[0], out var vLength);
var vCode = CommonCode.GenerateRandomText(vLength);//验证码
var message = new MimeMessage();
message.From.Add(new MailboxAddress("发送人姓名","发件人邮箱"));
message.To.Add(new MailboxAddress("收件人姓名", "收件人"));
message.Subject ="注册邮箱验证"; //邮件标题
var builder = new BodyBuilder
{
HtmlBody = "测试正文</br>正文换行"//正文
};
message.Body = builder.ToMessageBody();
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
var mSendMail = "发件人邮箱";
var mSendPwd = "发件人邮箱授权密码";//不是邮箱密码
client.Connect("smtp.qiye.163.com",465, true);//网易、QQ支持 25(未加密),465和587(SSL加密)
client.Authenticate(mSendMail, mSendPwd);
try
{
client.Send(message);//发送邮件
client.Disconnect(true);
return 1;// "SUCCESS";
}
catch (SmtpCommandException ex)
{
throw new MyException(ex.Message);
}
catch (Exception ex)
{
throw new MyException(ex.Message);
}
}
}
这篇关于C# SMTP发邮件不支持465端口的解决方案,网易企业邮箱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具