.Net实现邮箱发送邮件(MailMessage)
.Net实现邮箱发送邮件(MailMessage)
1、微软已经帮我们封装好了发送邮件的类 MailMessage,MailMessage类构造⼀些邮件信息,然后通过SmtpClient进⾏邮件发送。MailMessage常⽤的⼀些属性有:
  1.1、From:发件⼈邮箱地址。
  1.2、To:收件⼈的邮箱地址。
    1.3、CC:抄送⼈邮箱地址。
  1.4、Subject:邮件标题。
  1.5、Body:邮件内容。
1.6、Attachments:邮件附件
2、还需要⽤到SmtpClient类进⾏发送邮件。SmtpClient类的意思是:允许应⽤程序使⽤简单邮件传输协议 (SMTP) 来发送电⼦邮件。SmtpClient类常⽤的⼀些属性和⽅法:
  2.1、Host: 获取或设置⽤于 SMTP 事务的主机的名称或 IP 地址。
  2.2、EnableSsl:是否使⽤安全套接字层加密连接。
  2.3、UseDefaultCredentials:是否随请求⼀起发送。
  2.4、Credentials:获取或设置⽤于验证发件⼈⾝份的凭证。
  2.5、Send():发送。
3、上代码。
现在什么专业前景好
#region 发送邮件
static void Main(string[] args)
{
Program p = new Program();
string FromMial = "155@163";
string ToMial = "172@qq;1725@163";
string AuthorizationCode = "x*****l";
// string ReplyTo="";
// string CCMial="";
string File_Path = "C:/Users/xi/Desktop/啦啦啦.docx";
p.SendMail(FromMial, ToMial, AuthorizationCode, null, null, File_Path);
}
/// <summary>
/// 发送邮件⽅法
/// </summary>
/// <param name="FromMial">发件⼈邮箱</param>
/// <param name="ToMial">收件⼈邮箱(多个收件⼈地址⽤";"号隔开)</param>
/
// <param name="AuthorizationCode">发件⼈授权码</param>
/// <param name="ReplyTo">对⽅回复邮件时默认的接收地址(不设置也是可以的)</param>
/// <param name="CCMial">//邮件的抄送者(多个抄送⼈⽤";"号隔开)</param>
/// <param name="File_Path">附件的地址</param>
public void SendMail(string FromMial, string ToMial, string AuthorizationCode, string ReplyTo, string CCMial, string File_Path)
为母则刚上一句是什么?{
try
{
//实例化⼀个发送邮件类。
MailMessage mailMessage = new MailMessage();
MailMessage mailMessage = new MailMessage();
//邮件的优先级,分为 Low, Normal, High,通常⽤ Normal即可
mailMessage.Priority = MailPriority.Normal;
//发件⼈邮箱地址。
mailMessage.From = new MailAddress(FromMial);
//收件⼈邮箱地址。需要发就写多个
//拆分邮箱地址
List<string> ToMiallist = ToMial.Split(';').ToList();
for (int i = 0; i < ToMiallist.Count; i++)
{
mailMessage.To.Add(new MailAddress(ToMiallist[i]));  //收件⼈邮箱地址。
}
if (ReplyTo == "" || ReplyTo == null)
{
ReplyTo = FromMial;
}
//对⽅回复邮件时默认的接收地址(不设置也是可以的哟)
mailMessage.ReplyTo = new MailAddress(ReplyTo);
if (CCMial != "" && CCMial != null)
{
List<string> CCMiallist = ToMial.Split(';').ToList();
for (int i = 0; i < CCMiallist.Count; i++)
{
/
/邮件的抄送者,⽀持发
mailMessage.CC.Add(new MailAddress(CCMial));
}
}
//如果你的邮件标题包含中⽂,这⾥⼀定要指定,否则对⽅收到的极有可能是乱码。
mailMessage.SubjectEncoding = Encoding.GetEncoding(936);
//邮件正⽂是否是HTML格式
mailMessage.IsBodyHtml = false;
//邮件标题。
mailMessage.Subject = "发送邮件测试";
//邮件内容。
mailMessage.Body = "测试发邮件,以及附件邮件!.....";
//设置邮件的附件,将在客户端选择的附件先上传到服务器保存⼀个,然后加⼊到mail中
if (File_Path != "" && File_Path != null)
热血三国野地名将{
//将附件添加到邮件
mailMessage.Attachments.Add(new Attachment(File_Path));
//获取或设置此电⼦邮件的发送通知。
mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;
}
//实例化⼀个SmtpClient类。
SmtpClient client = new SmtpClient();
#region 设置邮件服务器地址
//在这⾥我使⽤的是163邮箱,所以是smtp.163,如果你使⽤的是qq邮箱,那么就是smtp.qq。                // client.Host = "smtp.163";
if (FromMial.Length != 0)
{
//根据发件⼈的邮件地址判断发件服务器地址默认端⼝⼀般是25
string[] addressor = FromMial.Trim().Split(new Char[] { '@', '.' });
switch (addressor[1])
{
{
case "163":
client.Host = "smtp.163";
break;
case "126":
client.Host = "smtp.126";
break;
case "qq":
client.Host = "smtp.qq";
break;
case "gmail":
client.Host = "ail";
break;
case "hotmail":
client.Host = "smtp.live";//outlook邮箱
//client.Port = 587;
break;
case "foxmail":
client.Host = "smtp.foxmail";
break;
case "sina":
client.Host = "smtp.sina";
break;
优秀团员竞选发言稿
default:
client.Host = "ail.qq";//qq
break;
}
}
#endregion
//使⽤安全加密连接。
client.EnableSsl = true;
//不和请求⼀块发送。
client.UseDefaultCredentials = false;
周公解梦 梦见死人//验证发件⼈⾝份(发件⼈的邮箱,邮箱⾥的⽣成授权码);
client.Credentials = new NetworkCredential(FromMial, AuthorizationCode);
//如果发送失败,SMTP 服务器将发送失败邮件告诉我
初中生物教学计划
mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;                //发送
client.Send(mailMessage);
Console.WriteLine("发送成功");
}
catch (Exception)
{
Console.WriteLine("发送失败");
}
}
#endregion
4、常见错误信息及解决办法。
  4.1、mail from address must be same as authorization user
    ⼀般出这种情况的原因有两种:
    4.1.1、POP3/IMAP/SMTP未开启。(这⾥以易⽹邮箱为例)
        解决办法:进⼊邮箱 - - - - -》设置- - - - -》常规设置- - - - -》然后到POP3/IMAP/SMTP开启即可。
4.1.2、授权码错误。
        解决办法:进⼊邮箱- - - - -》设置- - - - -》常规设置- - - - -》然后到客户端授权密码,开启客户端授权码
  4.2、Error: need EHLO and AUTH first !
    ⼀般情况系出现这种错误原因是SmtpClient类的EnableSsl、UseDefaultCredentials属性放到了Credentials属性之下。    解决办法:将SmtpClient类的EnableSsl、UseDefaultCredentials属性放到了Credentials属性之上。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。