C#发邮件_EmailHelper

EmailHelper类

 public class EmailHelper
    {
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="smtpServer">smtp服务器</param>
        /// <param name="port">端口</param>
        /// <param name="mailFrom">发件人邮箱</param>
        /// <param name="userPassword">密码</param>
        /// <param name="mailTo">收件人</param>
        /// <param name="strcc">抄送人</param>
        /// <param name="strBcc">密送</param>
        /// <param name="mailSubject">邮件主题</param>
        /// <param name="mailContent">内容</param>
        /// <param name="strs">附件</param>
        /// <returns>发送成功返回true否则false</returns>
        public static bool SendEmail(string smtpServer, int port, string mailFrom, string userPassword, string mailTo, string strcc,string strBcc,string mailSubject, string mailContent, string strs)
        {
            try
            {
                // 设置发送方的邮件信息
                // 邮件服务设置
                SmtpClient smtpClient = new SmtpClient();
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                smtpClient.Host = smtpServer; //指定SMTP服务器
                smtpClient.Port = port;//端口
                smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//验证用户名和密码
                smtpClient.EnableSsl = true; //使用SSL
                // 发送邮件设置
                MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人

                mailMessage.Subject = mailSubject;//主题
                mailMessage.Body = mailContent;//内容
                mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
                mailMessage.IsBodyHtml = true;//设置为HTML格式
                mailMessage.Priority = MailPriority.Normal;//优先级
                //抄送人
                if (!string.IsNullOrEmpty(strcc))
                    mailMessage.CC.Add(strcc);
                //密送
                if (!string.IsNullOrEmpty(strBcc))
                    mailMessage.Bcc.Add(strBcc);
                //附件
                if (!string.IsNullOrEmpty(strs))
                {
                    List<string> paths = new List<string>();
                    if (strs.Contains(","))
                    {
                        paths = strs.Split(‘,‘).ToList();
                    }
                    else
                    {
                        paths.Add(strs);

                    }
                    foreach (var path in paths)
                    {
                        mailMessage.Attachments.Add(new Attachment(strs));
                    }
                }
                smtpClient.Send(mailMessage); // 发送邮件
                return true;
            }
            catch
            {
                return false;
            }
        }
    }

  

调用发送邮件的方法:

 static void Main(string[] args)
        {
            //获得各种参数,不需要的用空字符串
            string path = Directory.GetCurrentDirectory();
            string file = path + @"\Excel.xlsx"; //附件1
            string file2 = path + @"\Excel2.xlsx";//附件2
            string smtpServer = "smtp.163.com";//163邮箱的smtp服务器
            int port = 25;//端口
            string mailFrom = "******@163.com";//发件人邮箱
            string pwd = "*********";//密码
            string mailTo = "[email protected],[email protected]";//收件人邮箱,多个用户用逗号隔开
            string mailCC = "";//抄送人,多个用户用逗号隔开
            string mailBcc = "";//密送
            string mailSubject = "测试邮件";//主题
            string mailContent = "HI,这是我发给你的一个测试邮件";//内容
            string ah = file+","+file2; //附件-文件路径
            if (EmailHelper.SendEmail(smtpServer, port, mailFrom, pwd, mailTo, mailCC, mailBcc, mailSubject, mailContent, ah) == true)
            {
                Console.WriteLine("发送成功!");
            }
            else
                Console.WriteLine("发送失败");

            Console.ReadKey();
        }

注意:

  • 确认发件人的邮箱已开通smtp;
  • 对应邮箱的smtp填写正确,例:126邮箱:[email protected]
  • 对应的邮箱SendEmail 中是否要使用SSL加密连接
时间: 2024-08-05 10:11:23

C#发邮件_EmailHelper的相关文章

Linux发邮件之mail

1.安装 (需要sendmail或postfix服务) sendmail     # yum install sendmail      # systemctl start sendmail.service     # systemctl status sendmail.service postfix     # yum install mailx     # systemctl start postfix.service     # systemctl status postfix.servi

Linux发邮件

一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容  set [email protected] smtp="smtp.qq.com"set smtp-auth-user="[email protected]" smtp-auth-password="123456"set smtp-auth=login 说明: from: 对方收到邮件时显示的发件人smtp: 指定第三方发送邮件的smtp服务器地址smtp-auth

Ubuntu 带账号认证发邮件

Ubuntu带账号认证发邮件 安装heirloom-mailx # apt-get install heirloom-mailx 修改/etc/nail.rc(最后添加) set [email protected] set smtp=10.0.0.4 set [email protected] set smtp-auth-password=123456 set smtp-auth-login :wq # echo "bb" mail -s "aa" [email p

【Python系列】Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧. 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想.可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4

使用mail.rc快速配置linux发邮件服务

1.系统环境. [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.8 (Final) [[email protected] ~]# uname -r 2.6.32-642.el6.x86_64 [[email protected] ~]# uname -m x86_64 2.通过修改配置文件/etc/mail.rc可以使用外部SMTP服务器,轻松实现linux发邮件功能. [[email protected] ~]#

利用Laravel自带的Mail类发邮件

由于项目在运行过程中经常用到邮件检测报警的功能,而在之前我都是用shell脚本发送邮件.shell脚本的优点是可以直接处理服务器指令,但是其缺点就是处理数据的能力效率太低,取数据库的许多数据要先把数据写入文件里,然后每行读文件并且分割来取出你想要的数据,相对来说麻烦太多.所以本人就准备直接利用Laravel框架封装好的Mail类直接发邮件,而且php语言相对shell来说数据处理能力简直强太多,所以果断弃坑了. 首先新建一个Laravel项目,在其.env文件里找到MAIL相关值,配好邮件发送账

关于发邮件的服务器的端口号

今天搞一个发邮件的小功能,一切参数设置好,就是服务器没响应. 一开始怀疑是邮件服务器设置不对,邮件服务器和outlook中找到的是一致的. 怀疑端口号25不对.大部分资料都说是25呀. ... 后来找到这个网页,说 Usually an outgoing server employs port 25: it's the default SMTP port. However, some IPs deny its use because of the massive spam and malware

对于a标签点击之后可以发邮件和打电话的功能实现

<ul> <li><i class="phone"></i><a href="tel:021-69976089">021-69976089</a></li>   //在手机浏览器下可以拨打电话 <li><i class="mobile"></i><a href="tel:13917585979">

Nagios 配置自动发邮件功能

安装sendmailyum install -y sendmail* 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.sendmail 服务service iptables restartservice sendmail restart 测试发邮件功能是否正常echo "Nagios Test Email " | mail -s "Alert" [email protected]此时163邮箱会收到一