最近闲着无聊研究了一下发送邮件
具体代码如下:
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="email">收件人邮箱</param>
/// <returns></returns>
[HttpPost]
public JsonResult SendEmail(string email, string userName)
{
SendEmailHelper helper = new SendEmailHelper();
//发件人邮箱
helper.SendEmail = "*************@qq.com";
//发件人姓名
helper.SendName = "白码驿站(www.51baidu.com.cn)";
//收件人邮箱
helper.AddresseeEmail = email;
//收件人姓名
helper.AddresseeName = email;
//标题
helper.EmailTitle = "白码驿站(www.51baidu.com.cn)";
//附件
helper.File = "";
//邮件内容
helper.Content = "白码驿站(www.51baidu.com.cn)!";
//邮箱服务器地址
helper.SMTPHost = "smtp.qq.com";
//发件人邮箱
helper.SMTPuser = "*******************@qq.com";
//发件人邮箱密码【授权密码】
helper.SMTPpass = "*****************";
bool b = helper.SendMail(helper);
if (b)
{
//将验证码更新到数据库
new FF_AccountService().UpdateVerification(str_r.ToLower(), userName);
}
return Json(b, JsonRequestBehavior.AllowGet);
}
注:上面的 helper.SMTPpass中的密码不是qq密码是,开通服务是的授权码
SendEmailHelper类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
namespace AcmenDream.Helper
{
public class SendEmailHelper
{
/// <summary>
/// 发件人的邮箱
/// </summary>
public string SendEmail { get; set; }
/// <summary>
/// 发件人姓名
/// </summary>
public string SendName { get; set; }
/// <summary>
/// 收件人的邮箱
/// </summary>
public string AddresseeEmail { get; set; }
/// <summary>
/// 收件人姓名
/// </summary>
public string AddresseeName { get; set; }
/// <summary>
/// 标题
/// </summary>
public string EmailTitle { get; set; }
/// <summary>
/// 附件
/// </summary>
public string File { get; set; }
/// <summary>
/// 邮件内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 邮箱服务器地址
/// </summary>
public string SMTPHost { get; set; }
/// <summary>
/// 发件人邮箱
/// </summary>
public string SMTPuser { get; set; }
/// <summary>
/// 发件人邮箱密码
/// </summary>
public string SMTPpass { get; set; }
/// <summary>
/// 发送邮件方法
/// </summary>
/// <param name="model">参数</param>
/// <returns></returns>
public bool SendMail(SendEmailHelper model)
{
//设置from和to地址
//发件人邮箱和收件人邮箱
MailAddress from = new MailAddress(model.SendEmail, model.SendName);
//发件人姓名 和收件人姓名
MailAddress to = new MailAddress(model.AddresseeEmail, model.AddresseeName);
//创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to);
// 添加附件
if (model.File != "")
{
oMail.Attachments.Add(new Attachment(model.File));
}
//邮件标题
oMail.Subject = model.EmailTitle;
//邮件内容
oMail.Body = model.Content;
//邮件格式
oMail.IsBodyHtml = false;
//邮件采用的编码
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
//设置邮件的优先级为高
oMail.Priority = MailPriority.High;
//发送邮件
SmtpClient client = new SmtpClient();
//client.UseDefaultCredentials = false;
//服务器地址
client.Host = model.SMTPHost;
//账户密码
client.Credentials = new NetworkCredential(model.SMTPuser, model.SMTPpass);
//ssl加密
client.EnableSsl = true;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
client.Send(oMail);
return true;
}
catch (Exception err)
{
return false;
}
finally
{
//释放资源
oMail.Dispose();
}
}
}
}
注:发送邮件是需要开通服务(免费开通)的,就拿qq邮箱来举例子吧, 需要打开qq邮箱->设置->账户,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”
可以将几个服务全部开通.
经过简单的几步, 发送邮件程序就完成了!