一、直接调用outlook邮箱发送邮件
1.环境准备:右击项目中的引用,选择【管理NuGet程序包】
2.搜索outlook,点击安装(我已经安装过了所以显示的是更新)
3.
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="sendmail">收件人邮箱</param>
/// <param name="mailtitle">邮件标题</param>
/// <param name="mailcontent">邮件内容</param>
/// <returns></returns>
public static bool Send(string sendmail, string mailtitle, string mailcontent)
{
Regex r = new Regex("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
if (r.IsMatch(sendmail))
{
Application olApp = new Application();
MailItem mailItem = (MailItem)olApp.CreateItem(OlItemType.olMailItem);
mailItem.To = sendmail;
mailItem.Subject = mailtitle;
mailItem.BodyFormat = OlBodyFormat.olFormatHTML;
mailItem.HTMLBody = mailcontent;
(mailItem).Send();
mailItem = null;
olApp = null;
return true;
}
return false;
}
这种方法相当于直接调用用户电脑上的outlook邮箱进行邮件发送,只要提前在发布的服务器上安装好outlook邮箱,并且登录成功,那么就可以使用上面的方法进行邮件发送,且无需再次进行邮箱的身份验证;
二、通过outlook的smtp服务器发送邮件
SmtpClient smtpmail = new SmtpClient("smtp-server");
smtpmail.Port = 993;
smtpmail.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpmail.EnableSsl = false;
smtpmail.Credentials = new NetworkCredential("username", "password"); //发送人邮箱的账号密码
MailMessage mailob = new MailMessage();
mailob.From = new MailAddress("发件人邮箱", "", Encoding.UTF8);
string to = "收件人邮箱@example.com;收件人邮箱@example.com;" //可创建多个收件人,收件人邮箱之间使用';'分号分隔
string[] tosomebody = to.Split(';');
for (int i = 0; i < tosomebody.Length; i++)
{
mailob.To.Add(tosomebody[i].ToString());
}
string cc = "抄送邮箱@example.com;抄送邮箱@example.com;"
if (cc != "")
{
string[] ccsomebody = cc.Split(';');
for (int i = 0; i < ccsomebody.Length; i++)
{
mailob.CC.Add(ccsomebody[i].ToString());
}
}
mailob.Subject = "主题";
mailob.Body = "邮件内容";
mailob.BodyEncoding = Encoding.UTF8;
mailob.IsBodyHtml = true;
smtpmail.Send(mailob);
常用smtp服务器地址及端口号如下:
outlook.com:SMTP服务器地址:smtp.office365.com(端口:587)
163.com:SMTP服务器地址:smtp.163.com(端口:25)
qq.com:SMTP服务器地址:smtp.qq.com (SSL启用 端口:465)
sina.com:SMTP服务器地址:smtp.sina.com.cn(端口:25)
Foxmail:SMTP服务器地址:SMTP.foxmail.com(端口:25)
sinaVIP:SMTP服务器:smtp.vip.sina.com (端口:25)
sohu.com:SMTP服务器地址:smtp.sohu.com(端口:25)
使用smtp服务器发送邮件,则无需在目标服务器上安装outlook邮箱,只需在smtp服务器上通过身份验证后,就可发送邮件;