版权声明:本文为博主原创文章,未经博主允许不得转载☺ https://blog.csdn.net/u014571132/article/details/53434540
使用SMTP发送邮件
发送的邮件为本地html文件,html中的图片为本地图片
主体函数,根据传入的bool参数发送不同的模板
internal class FeedbackMail
{
public MailMessage mailMessage = new MailMessage();
public SmtpClient smtpClient;
public int senderPort = 587;
public String senderServerHost = "mail.abc.com";
public String senderPassword = "abc";
public String senderUsername = "aaa";
public void SendMail(Boolean isSuccess)
{
String[] members = XmlReader.GetElementFromXml("SendMailTo").Split(';');
foreach (var member in members)
{
mailMessage.To.Add(member);
}
mailMessage.From = new MailAddress("[email protected]");
mailMessage.Subject = "EmailTest";
AlternateView htmlBody;
if (isSuccess)
{
var reader = new StreamReader(@"C:\MailForSuccess.html", Encoding.Default);
var mailBody = reader.ReadToEnd().ToString();
htmlBody = AlternateView.CreateAlternateViewFromString(mailBody, null, "text/html");
}
else
{
var reader = new StreamReader(@"C:\MailForFailure.html", Encoding.Default);
var mailBody = reader.ReadToEnd().ToString();
htmlBody = AlternateView.CreateAlternateViewFromString(mailBody, null, "text/html");
}
LinkedResource lrImage = new LinkedResource(@"C:\AvePoint.png", "image/gif");
LinkedResource lrImage2 = new LinkedResource(@"C:\MSPartner.png", "image/gif");
lrImage.ContentId = "AvePoint";
lrImage2.ContentId = "MSPartner";
htmlBody.LinkedResources.Add(lrImage);
htmlBody.LinkedResources.Add(lrImage2);
mailMessage.AlternateViews.Add(htmlBody);
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
mailMessage.Priority = MailPriority.Normal;
Send();
}
public void Send()
{
try
{
if (mailMessage != null)
{
smtpClient = new SmtpClient();
smtpClient.Host = senderServerHost;
smtpClient.Port = senderPort;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(senderUsername, senderPassword);
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtpClient.Send(mailMessage);
Console.WriteLine("Send Success");
}
}
catch (Exception ex)
{
Console.WriteLine("Send Fail");
Console.WriteLine(ex.Message);
}
}
}