概述:
注册时的根据用户输入的邮箱,发送一封邮件来激活账号
目的:
解决用户账号的安全方便用户通过邮箱找回密码
问题:
发送邮件的服务越是免费力度大,就越有可能被用来发垃圾邮件,导致共享ip的发送数量超过阈值,或者信誉下降甚至被黑名单。想免费就做好付出相应代价的觉悟。自建邮件服务器的话需要自己维护,要自己懂得如何设置spf和dkim的值,了解如何预热,成本也是挺高的。
代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
namespace Model
{
public class qqSendEmial
{
#region 邮箱发送公共方法
/// <summary>
/// qq邮箱发送
/// </summary>
/// <param name="mailTo">收件人</param>
/// <param name="mailSubject">邮件主题</param>
/// <param name="mailContent">邮件内容</param>
/// <returns></returns>
public static bool SendEmail(string mailTo, string mailSubject, string mailContent)
{
//设置发送方的邮件信息
string smtpServer = "smtp.qq.com";//SMTP服务器(qq邮箱)
string mailFrom = "969486092@qq.com";//登录名称
string userPassword = "gvetzbfdltncbcfc";//登录密码新版之后的QQ邮箱都是使用授权码,需要到邮箱-设置-账户里面找到-生成授权码-复制进来
//邮件服务设置
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;//使用了授权码必须设置为true
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
smtpClient.Host = smtpServer;
smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名密码
//发送邮件设置
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress(mailFrom, "发件人内容", System.Text.Encoding.UTF8);//发送人
mailMessage.To.Add(mailTo);//收件人;
mailMessage.Subject = mailSubject;//主题
mailMessage.Body = mailContent;//内容
mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
mailMessage.IsBodyHtml = true;//设置为Html格式
mailMessage.Priority = MailPriority.Low;//优先级
try
{
smtpClient.Send(mailMessage);
return true;
}
catch (Exception)
{
return false;
throw;
}
}
#endregion
}
}