1.webconfig配置邮件基本信息
<add key="eMailServer" value="IP地址" />
<add key="eMailSenderUsername" value="??" />
<add key="eMailSenderPassword" value="??" />
<add key="MonitorPerson" value="qqq@123.com;www@123.com;" />
2.common类中调用webconfig信息
public static string eMailSenderUsername
{
get
{
if (!ConfigurationManager.AppSettings.AllKeys.Contains("eMailSenderUsername" + _RunSetSuffix))
{
throw new Exception("请检查Web.config文件,appSettings节点是否存在eMailSenderUsername" + _RunSetSuffix + "节点。");
}
return ConfigurationManager.AppSettings["eMailSenderUsername" + _RunSetSuffix];
}
}
public static string eMailSenderPassword
{
get
{
if (!ConfigurationManager.AppSettings.AllKeys.Contains("eMailSenderPassword" + _RunSetSuffix))
{
throw new Exception("请检查Web.config文件,appSettings节点是否存在eMailSenderPassword" + _RunSetSuffix + "节点。");
}
return ConfigurationManager.AppSettings["eMailSenderPassword" + _RunSetSuffix];
}
}
3.申明邮件类
public class EMail
{
private MailMessage mMailMessage;
private SmtpClient mSmtpClient;
private int mSenderPort = 25;
private string mSenderServerHost = Config.eMailServer;
private string mSenderUsername = Config.eMailSenderUsername;
private string mSenderPassword = Config.eMailSenderPassword;
private bool mEnableSsl = false;
private bool mEnablePwdAuthentication = true;
public EMail(string fromMail, string toMail, string CCMail, string emailSubject, string emailBody, string emailAnnex)
{
try
{
mMailMessage = new MailMessage();
string[] tempTo = toMail.Split(';');
if (tempTo.Length > 0)
{
for (int i = 0; i < tempTo.Length; i++)
{
if (!string.IsNullOrEmpty(tempTo[i]))
{
mMailMessage.To.Add(tempTo[i]);
}
}
}
if (!string.IsNullOrEmpty(CCMail))
{
string[] tempCC = CCMail.Split(';');
if (tempCC.Length > 0)
{
for (int i = 0; i < tempCC.Length; i++)
{
if (!string.IsNullOrEmpty(tempCC[i]))
{
mMailMessage.CC.Add(tempCC[i]);
}
}
}
}
mMailMessage.From = new MailAddress(fromMail);
mMailMessage.Subject = emailSubject;
mMailMessage.Body = emailBody;
mMailMessage.IsBodyHtml = true;
mMailMessage.BodyEncoding = System.Text.Encoding.UTF8;
mMailMessage.Priority = MailPriority.Normal;
if (!string.IsNullOrEmpty(emailAnnex) && File.Exists(emailAnnex))
{
Attachment attach = new Attachment(emailAnnex);
ContentDisposition disposition = attach.ContentDisposition;
disposition.CreationDate = File.GetCreationTime(emailAnnex);
disposition.ModificationDate = File.GetLastWriteTime(emailAnnex);
disposition.ReadDate = File.GetLastAccessTime(emailAnnex);
mMailMessage.Attachments.Add(attach);
}
}
catch (Exception e)
{
throw e;
}
}
public void Send()
{
try
{
if (mMailMessage != null)
{
mSmtpClient = new SmtpClient();
mSmtpClient.Host = this.mSenderServerHost;
mSmtpClient.Port = this.mSenderPort;
mSmtpClient.UseDefaultCredentials = false;
mSmtpClient.EnableSsl = this.mEnableSsl;
if (this.mEnablePwdAuthentication)
{
System.Net.NetworkCredential nc = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);
mSmtpClient.Credentials = nc.GetCredential(mSmtpClient.Host, mSmtpClient.Port, "NTLM");
}
else
{
mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);
}
mSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
mSmtpClient.Send(mMailMessage);
}
}
catch (Exception e)
{
throw e;
}
}
}
4.调用Email类
#region 邮件提醒
public static void sendEmail(string info)
{
StringBuilder sb = new StringBuilder()
.Append("<body style=\"margin: 10px; font-size: 12pt;\">")
.Append(" <div>您好:</div>")
.Append(" <div style=\"text-indent: 2em;\">以下信息同步,请及时查询!</div>")
.Append(" <div style=\"text-indent: 2em;\"> </div>")
.Append(" <div style=\"margin-left: 2em;\">");
sb.AppendFormat("异常编号:{0}<br />", info);
EMail email = new EMail(
"mossadmin@hitechsemi.com",
Config.MonitorPerson,
null,
"信息同步失败!",
sb.ToString(),
null);
email.Send();
}
#endregion