腾讯企业邮箱客户端配置介绍
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); }
方法的差异