C#调用邮箱发送
controller代码:
string mailSvr = emailSetting.MailSvr;// "smtp.qq.com"; //邮箱的服务地址,目前呢个是qq的服务地址
string account = emailSetting.Account;// "1362575166";//发送方账号,比如qq号
string pwd = emailSetting.Pwd;// "wfaavpiezyxfigad";//发送方邮箱授权码
string addr = emailSetting.Addr;// "1362575166@qq.com";//发送方邮箱地址
string reciveaddr = input.EmailNumber; //"2107076114@qq.com";//接收方邮箱地址
string content = sendContent;//发送的内容
string subject= "Your verification code: ";//邮箱主题
string result= await _emailSendService.SendTo(mailSvr, account, pwd, addr, reciveaddr, content, subject);
底层代码
public async Task<string> SendTo(string mailSvr,string account,string pwd,string addr,string reciveaddr,string content,string subject)
{
try
{
using (SmtpClient smtp = new SmtpClient(mailSvr))
{
smtp.Credentials = new NetworkCredential(account, pwd);//身份认证
MailMessage mail = new MailMessage();//建立邮件
mail.SubjectEncoding = Encoding.GetEncoding("GBK");//主题编码
mail.BodyEncoding = Encoding.GetEncoding("GBK");//正文编码
mail.Priority = MailPriority.Normal;//邮件的优先级为中等
mail.IsBodyHtml = false;//正文为纯文本,如果需要用HTML则为true
mail.From = new MailAddress(addr);//发件人地址
mail.To.Add(reciveaddr);//接收人地址
mail.Subject = subject;//主题
mail.Body = content;//正文
smtp.Send(mail);//正式发邮件
mail.Dispose();
smtp.Dispose();
return "ok";
}
}
catch (Exception e)
{
throw new MyException("An unknown error occurred");
}
}
qq邮箱需要在邮箱页面=设置=账号=开启Smtp的两个选项,然后在下面生成授权码,上面的授权码就是下面生成的授权码,然后就可以调用接口发送消息了