C# 发送邮件实例代码

时间:2023-03-09 01:26:57
C# 发送邮件实例代码

1、构造附件

        static List<Attachment> BuildAttachments(List<EmailFile> files)
{
if (files == null || files.Count <= ) { return null; } List<Attachment> result = new List<Attachment>();
foreach (var obj in files)
{
try
{
byte[] buffer = Convert.FromBase64String(obj.Body);
System.IO.MemoryStream stream = new System.IO.MemoryStream(buffer, , buffer.Length); result.Add(new Attachment(stream, obj.Filename, obj.Mimetype));
}
catch { }
}
return result;
}

2、构造邮件实例,并发送

        static void SendMail(string from, string tos, string ccs, string subject, string body, List<Attachment> attachments)
{
try
{
string[] fromMails = from.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string[] toMails = tos.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string[] ccMails = ccs.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
MailMessage m = new MailMessage();
m.From = new MailAddress(fromMails[].Trim());
foreach (string to in toMails)
{
m.To.Add(to.Trim());
}
foreach (string cc in ccMails)
{
m.CC.Add(cc.Trim());
} m.Subject = subject;
m.Body = body;
m.BodyEncoding = System.Text.UnicodeEncoding.UTF8;
m.IsBodyHtml = true;
if (attachments != null && attachments.Count > )
{
foreach (var obj in attachments) { m.Attachments.Add(obj); }
}
SmtpClient client = new SmtpClient();
client.Host = _configObj.EmailHost;
client.UseDefaultCredentials = true;
if (string.IsNullOrEmpty(_configObj.EmailUser) == false && string.IsNullOrEmpty(_configObj.EmailPwd) == false)
{
client.Credentials = new System.Net.NetworkCredential(_configObj.EmailUser.Trim(), _configObj.EmailPwd.Trim());
}
client.Send(m);
}
catch (Exception ex) { throw ex; }
}