最近研究通过编程发送电子邮件,所以做些总结以备查看;
通过C#发送邮件主要步骤:
1. 创建Mail.MailMessage,并进行参数配置;
2. 创建SmtpClient,配置好参数,通过Send函数发送,异步使用(SendAsync)
* 注意在发送之前,确定邮箱服务器是否支持SMTP协议发送邮件,是否使用登录账户密码发送邮件,我是使用126邮箱,第一次测试时使用的是10多年前申请的,测试都是好的,后来又申请了个新的,但就是发送不了了,后来联系客服说需要设置客户端授权码,使用授权码在能使用第三方客户端发送邮件,设置好后,测试Ok
以下为发送代码:
using System.Net.Mail;
public void SendEmail()
{
MailMessagemsg = new MailMessage();
msg.To.Add("your_email@126.com"); //收件邮箱地址
msg.CC.Add("your_email@126.com"); //抄送地址
// 设置发件人信息
msg.From = newMailAddress("i51source@126.com","51SOURCE.CN", System.Text.Encoding.UTF8);
msg.Subject = "Send Email Test"; //设置标题
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = "Onlyfor test"; //邮件内容,可发送HTML网页邮件
msg.BodyEncoding = System.Text.Encoding.Default;
msg.IsBodyHtml =checkBoxHtmlBody.Checked; // 是否是HTML邮件
msg.Priority = MailPriority.Normal; //设置邮件优先级
SmtpClient client =new SmtpClient();
client.Credentials = new System.Net.NetworkCredential("i51source@126.com","password");
client.Port = 25; // 未加密端口
client.Host = "smtp.126.com";
//client.EnableSsl= true; //加密端口,使用587
try
{
client.Send(msg);
//client.SendAsync(msg,msg); //异步发送
MessageBox.Show("发送成功");
}
catch(System.Net.Mail.SmtpException ex)
{
MessageBox.Show(String.Format("发送邮件出错:{0}", ex.Message.ToString()));
}
}
备注:
网易126免费邮箱相关服务器服务器信息:
邮件服务器名称 服务器地址 端口号
POP3服务器 pop.126.com 110
SMTP服务器 smtp.126.com 25
IMAP服务器 imap.126.com 143
关于HTML邮件:
使用HTML内容的邮件,如果过于简单,可能会被认定为垃圾邮件:
<html><head>
</head>
<body>
<ahref="http://www.mcuplc.com" target="_blank">测试连接</a>
</body>
</html>
会被Outlook认为垃圾邮件,但增加了些内容,如下,就Ok了,还不太了解原因,需继续研究:
<html><head><basetarget="_blank">
<style type="text/css">
::-webkit-scrollbar{ display: none; }
</style>
<style id="cloudAttachStyle"type="text/css">
#divNeteaseBigAttach,#divNeteaseBigAttach_bak{display:none;}
</style>
</head>
<body>
<ahref="http://www.mcuplc.com" target="_blank">测试连接</a>
<style type="text/css">
body{font-size:14px;font-family:arial,verdana,sans-serif;line-height:1.666;padding:0;margin:0;overflow:auto;white-space:normal;word-wrap:break-word;min-height:100px}
td, input, button, select,body{font-family:Helvetica, 'Microsoft Yahei', verdana}
pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;width:95%}
th,td{font-family:arial,verdana,sans-serif;line-height:1.666}img{border:0}header,footer,section,aside,article,nav,hgroup,figure,figcaption{display:block}
</style><styleid="ntes_link_color" type="text/css">a,tda{color:#138144}</style></body></html>