C#发送腾讯企业邮箱

腾讯企业邮箱客户端配置介绍

POP3/SMTP协议
POP3/SMTP协议:
接收邮件服务器:pop.exmail.qq.com (端口 110),使用SSL,端口号995
发送邮件服务器:smtp.exmail.qq.com (端口 25),使用SSL,端口号465或587
IMAP协议:
接收邮件服务器:imap.exmail.qq.com (端口 143),使用SSL,端口号993
发送邮件服务器:smtp.exmail.qq.com (端口 25),使用SSL,端口号465或587
账户名:您的企业邮箱账户名,账户名需要填写完整的邮件地址
密码:您的企业邮箱密码
电子邮件地址:您的企业邮箱的完整邮件地址
海外用户可使用以下服务器
POP3/SMTP协议
接收邮件服务器:hwpop.exmail.qq.com ,使用SSL,端口号995
发送邮件服务器:hwsmtp.exmail.qq.com ,使用SSL,端口号465
 
IMAP协议
接收邮件服务器:hwimap.exmail.qq.com ,使用SSL,端口号993
发送邮件服务器:hwsmtp.exmail.qq.com ,使用SSL,端口号465
由文档可知,使用SMTP有2种方式
(1)直接使用25端口
(2)使用SSL,使用465或587端口

C#示例

直接使用25端口

在本机电脑可以使用
生产服务器就无法使用(提示timeout)
经百度得,阿里云服务器默认关闭了25端口,故无法使用。
        /// <summary>
        /// 向用户发送邮件
        /// </summary>
        /// <param name="ReceiveUser">接收人,邮箱地址</param>
        /// <param name="ReceiveName">接收人,显示的名称</param>
        /// <param name="SendUser">发件人,邮箱地址</param>
        /// <param name="DisplayName">发件人,显示的名称</param>
        /// <param name="SendUserName">发件人,邮箱地址</param>
        /// <param name="UserPassword">发件人,邮箱密码</param>
        /// <param name="MailTitle">邮件标题</param>
        /// <param name="MailContent">邮件内容</param>
        private static void SendMail(string ReceiveUser, string ReceiveName, string SendUser, string DisplayName, string SendUserName, string UserPassword, string MailTitle, string MailContent)
        {
            MailAddress toMail = new MailAddress(ReceiveUser, ReceiveName);//接收者邮箱
            MailAddress fromMail = new MailAddress(SendUser, DisplayName);//发送者邮箱
            MailMessage mail = new MailMessage(fromMail, toMail);
            mail.Subject = MailTitle;
            mail.IsBodyHtml = true;//是否支持HTML
            mail.Body = MailContent;
            SmtpClient client = new SmtpClient();
            client.Host = "smtp.exmail.qq.com";//设置发送者邮箱对应的smtpserver
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential(SendUserName, UserPassword);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;

            client.Send(mail);
        }

使用SSL,使用端口号465或587

邮件发送端口的介绍

465端口

在本机电脑就无法使用(提示timeout)
生产服务器就无法使用(提示timeout)
经百度得,不建议使用465端口
不幸的是,465号端口从未被IETF(因特网工程任务组)认可,这个机构负责开发Internet标准,作为SMTP的正式端口。相反,IANA(互联网数字分配机构)分配给smtps(简单邮件传输协议),现在depracated确保SMTP的方法。

587端口

在本机电脑可以使用
生产服务器可以使用
最终使用了下面的版本
        /// <summary>
        /// 向用户发送邮件
        /// </summary>
        /// <param name="ReceiveUser">接收人,邮箱地址</param>
        /// <param name="ReceiveName">接收人,显示的名称</param>
        /// <param name="SendUser">发件人,邮箱地址</param>
        /// <param name="DisplayName">发件人,显示的名称</param>
        /// <param name="SendUserName">发件人,邮箱地址</param>
        /// <param name="UserPassword">发件人,邮箱密码</param>
        /// <param name="MailTitle">邮件标题</param>
        /// <param name="MailContent">邮件内容</param>
        private static void SendMail(string ReceiveUser, string ReceiveName, string SendUser, string DisplayName, string SendUserName, string UserPassword, string MailTitle, string MailContent)
        {
            MailAddress toMail = new MailAddress(ReceiveUser, ReceiveName);//接收者邮箱
            MailAddress fromMail = new MailAddress(SendUser, DisplayName);//发送者邮箱
            MailMessage mail = new MailMessage(fromMail, toMail);
            mail.Subject = MailTitle;
            mail.IsBodyHtml = true;//是否支持HTML
            mail.Body = MailContent;
            SmtpClient client = new SmtpClient();
            client.EnableSsl = true;
            client.Host = "smtp.exmail.qq.com";//设置发送者邮箱对应的smtpserver
            client.Port = 587;
            client.UseDefaultCredentials = false;
            client.Credentials = new NetworkCredential(SendUserName, UserPassword);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;

            client.Send(mail);
        }

调用示例

        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="ReceiveUser">接收人,邮箱地址</param>
        /// <param name="ReceiveName">接收人,显示的名称</param>
        /// <param name="Title">邮件标题</param>
        /// <param name="Content">邮件内容</param>
        public static void SendEMail(string ReceiveUser, string ReceiveName, string Title, string Content)
        {
            string SendUser = "liyang@rs.cn";//发送人地址,
            string DisplayName = "李洋";//发送人显示的名称
            string SendUserName = "liyang@rs.cn";//发送人邮箱账号
            string UserPassword = "Liyang1988@103";//发送人邮箱密码
            string MailTitle = Title;
            string MailContent = Content;

            SendMail(ReceiveUser, ReceiveName, SendUser, DisplayName, SendUserName, UserPassword, MailTitle, MailContent);
        }

方法的差异

 

posted @ 2020-09-19 16:57  我有我奥妙  阅读(1527)  评论(0编辑  收藏  举报