C#邮件发送类 简单实用 可自定义发件人名称

上图看效果

MailHelper:

public class MailHelper
    {
        public bool SendMail(MailSender sender,out string errorMsg)
        {
            //声明一个Mail对象
            MailMessage mymail = new MailMessage();
            //发件人地址
            //如是自己,在此输入自己的邮箱
            mymail.From = new MailAddress(sender.SendAddress,sender.SendNickName,Encoding.UTF8);
            //收件人地址
            mymail.To.Add(new MailAddress(sender.ReceiveAddress));
            //邮件主题
            mymail.Subject = sender.Title;
            //邮件标题编码
            mymail.SubjectEncoding = Encoding.UTF8;
            //发送邮件的内容
            mymail.Body = sender.Content;
            //邮件内容编码
            mymail.BodyEncoding = Encoding.UTF8;
            //添加附件
            foreach (var attachment in sender.Attachments)
            {
                mymail.Attachments.Add(attachment);
            }
            
            //抄送到其他邮箱
            foreach (var str in sender.Cc)
            {
                mymail.CC.Add(new MailAddress(str));
            }
            
            //是否是HTML邮件
            mymail.IsBodyHtml = sender.IsBodyHtml;
            //邮件优先级
            mymail.Priority = sender.MailPriority;
            //创建一个邮件服务器类
            SmtpClient myclient = new SmtpClient();
            myclient.Host = sender.Host;
            //SMTP服务端口
            myclient.Port = sender.Port;
            //验证登录
            myclient.Credentials = new NetworkCredential(sender.Username, sender.Password);//"@"输入有效的邮件名, "*"输入有效的密码
            try
            {
                myclient.Send(mymail);
                errorMsg = "";
                return true;
            }
            catch (Exception ex)
            {
                errorMsg = ex.Message;
                return false;
            }
            
        } 

  调用:

MailSender sender=new MailSender();
            sender.SendAddress = "***@***.com";
            sender.SendNickName = "辰晓晨";
            sender.ReceiveAddress = "***@***.com";
            sender.Host = "smtp.***.com";
            sender.Port = 25;
            sender.Username = "****@***.com";
            sender.Password = "******";
            sender.Title = "来自辰晓晨的邮件";
            sender.Content = "来自辰晓晨的邮件";
            sender.IsBodyHtml = false;
            sender.MailPriority=MailPriority.Normal;
            MailHelper.MailHelper mailHelper = new MailHelper.MailHelper();
            string errorMsg;
            if (mailHelper.SendMail(sender, out errorMsg))
            {
                Console.WriteLine("发送成功");
                
            }
            else
            {
                Console.WriteLine("发送失败:"+errorMsg);
                
            }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Bug生活2048

.net core下验证码及二维码登录的实现

验证码实现的逻辑比较简单,生成一个随机数的图片,然后将随机数保存至cookie中,用于客户端校验。

1203
来自专栏雪胖纸的玩蛇日常

python3+django2 开发易语言网络验证(中)

3177
来自专栏緣來來來

Mac 下使用tree命令列目录

相信很多使用过Linux的用户都用过tree命令,它可以像windows的文件管理器一样清楚明了的显示目录结构。不过有是有并不是系统本身就自带的,如果需要的话,...

1161
来自专栏calvin

解决linux netcore https请求使用自签名证书忽略安全检查方法

当前系统环境:centos7 x64. dotnet 2.0. 不管是 ServicePointManager.ServerCertificateValid...

952
来自专栏Python攻城狮

Django教程(四)- Django模板及进阶

需求:编写注册提交,“密码”与“确认密码”不一致,显示密码不一样。成功后在另一个页面显示 代码操作:

972
来自专栏坚毅的PHP

startup script和cronolog日志切分

相关参考资料: http://man.cx/start-stop-daemon(8) http://cronolog.org/usage.html http:/...

3686
来自专栏三杯水

Redis3.2.9/4.0.1集群部署配置优化

http://www.redis.cn/topics/cluster-spec.html

2752
来自专栏cnblogs

半小时入门Thrift

      当一个单体软件产品体量达到一定程序,都会想到拆分为不同的模块(当今这么流行微服务)。拆分后一定会存在进程之间的交互(简称:PRC),那么thrift...

1337
来自专栏跟着阿笨一起玩NET

Asp.net中把DataTable或DataGrid导出为Excel

当前编码的一个项目中有把查询结果(显示在DataGrid)导出为excel的需求,尝试了几种方法,作为技巧拿来和大家分享。 内容: 服务器端实现Data...

1211
来自专栏跟着阿笨一起玩NET

关于.NET邮件的收发问题总结

        最近因为项目需要,研究了一下邮件的发送和接收,发现现在这方面的问题很多.虽然网上这方面的资料很多,但是真正应用起来 仍然会发现不少问题,而且很多...

751

扫码关注云+社区