C# 发送邮件实例代码

1、构造附件

        static List<Attachment> BuildAttachments(List<EmailFile> files)
        {
            if (files == null || files.Count <= 0) { 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, 0, buffer.Length);

                    result.Add(new Attachment(stream, obj.Filename, obj.Mimetype));
                }
                catch { }
            }
            return result;
        }
View Code

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[0].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 > 0)
                {
                    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; }
        }
View Code

 

posted @ 2016-03-11 14:54  Servant  阅读(291)  评论(0编辑  收藏  举报