切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
C# 基础
Mybatis
ADO.NET
ASP.NET
Python 基础
Linq
Web Forms
.NET
Spring
SpringBoot
SpringCloud
.NET Core 中间件
Maven
.NET 类库
ASP.NET MVC
EF
NHibernate
WebApi
Java
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
服务端
C# 使用QQ邮箱代理做邮件接收功能
[TOC] ## 1、获取QQ邮箱授权码 温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。 登录QQ邮箱后-》进入设置-》账户页面找到入口 1)开启  2)验证密保  3)获取授权码  ## 2、实现代码 ```csharp /// <summary> /// 邮件参数配置 /// </summary> static private readonly string EmailAccount = ConfigurationManager.AppSettings["EmailAccount"].ToString();//接收邮件的邮箱 static private readonly string SMTP = ConfigurationManager.AppSettings["ActivaEmailSMTP"].ToString();//smtp static private readonly string SysEmail = ConfigurationManager.AppSettings["ActivaEmailAccount"].ToString();//代理的QQ邮箱 static private readonly string SysEmailPwd = ConfigurationManager.AppSettings["ActivaEmailPassword"].ToString();//第一步获取的授权 /// <summary> /// 发送邮件 /// </summary> /// <param name="Body">邮件内容</param> /// <param name="UserEmail">用户邮箱(EmailAccount)</param> /// <param name="Subject">邮件标题</param> public static bool SendEmails(string UserEmail, string Subject, string Body) { bool IsSend = false; try { //实例化一个邮件类 MailMessage mm = new MailMessage(); mm.From = new MailAddress(SysEmail, SysEmail, Encoding.GetEncoding(936)); mm.To.Add(new MailAddress(UserEmail, UserEmail, Encoding.GetEncoding(936))); mm.Subject = Subject; //邮件标题 mm.SubjectEncoding = Encoding.GetEncoding(936); mm.Body = Body;//邮件 //mm.Body = string.Format(Content, userName) + string.Format("<a href='{0}'>{1}</a>", ActivUrl, ActivUrl); mm.BodyEncoding = Encoding.GetEncoding(936); mm.IsBodyHtml = true; //邮件正文是否是HTML格式 mm.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可 //实例化一个SmtpClient SmtpClient smtp = new SmtpClient(SMTP); smtp.UseDefaultCredentials = false; //smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network //smtp.EnableSsl = true;//smtp服务器是否启用SSL加密 smtp.Host = SMTP; //指定发送邮件的服务器地址或IP //smtp.Port = EmailPort; //指定发送邮件端口 smtp.Credentials = new NetworkCredential(SysEmail, SysEmailPwd); smtp.EnableSsl = true; smtp.Send(mm); //发送邮件,如果不返回异常, 则大功告成了。 IsSend = true; //break; } catch (Exception ex)//异常日志记录 { S_ErrorInfoBLL errorbll = new S_ErrorInfoBLL(); errorbll.AddErrr(ex.Message, ex.StackTrace, "HomeController.cs", "SendEmails"); IsSend = false; } return IsSend; } ``` 上面代码使用的是System.Net.Mail > 注意在阿里云服务上上面的方法是发送不成功的,因为阿里云服务器禁用了25端口,需要使用下面的方法才能正确发送(记得服务器安全组需要设置开放端口465) ```csharp /// <summary> /// 发送邮件 /// </summary> /// <param name="ActivUrl">激活Url</param> /// <param name="UserEmail">用户邮箱</param> /// <param name="userName">用户名</param> public static bool SendEmails(string UserEmail, string Subject, string Body) { bool IsSend = false; try { MailMessage mmsg = new MailMessage(); //邮件主题 mmsg.Subject = Subject; mmsg.BodyFormat = MailFormat.Html; //邮件正文 mmsg.Body = Body; //正文编码 mmsg.BodyEncoding = Encoding.UTF8; //优先级 mmsg.Priority = MailPriority.High; //发件者邮箱地址 mmsg.From = SysEmail; //收件人收箱地址 mmsg.To = UserEmail; mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //用户名 mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", SysEmail); //密码 mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", SysEmailPwd); //端口 mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465); //使用SSL mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true"); //Smtp服务器 SmtpMail.SmtpServer = SMTP; SmtpMail.Send(mmsg); IsSend = true; } catch (Exception ex) { S_ErrorInfoBLL errorbll = new S_ErrorInfoBLL(); errorbll.AddErrr(ex.Message, ex.StackTrace, "ExecuteTask.cs", "SendEmails"); IsSend = false; } return IsSend; } ``` 此邮件发送使用的是System.Web.Mail
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号