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

 

转载于:https://www.cnblogs.com/servant/p/5265663.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值