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 = ;//端口
string mailFrom = "******@163.com";//发件人邮箱
string pwd = "*********";//密码
string mailTo = "123@163.com,456@qq.com";//收件人邮箱,多个用户用逗号隔开
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邮箱:smtp@126.com
  • 对应的邮箱SendEmail 中是否要使用SSL加密连接

C#发邮件_EmailHelper的更多相关文章

  1. # PHP - 使用PHPMailer发邮件

    PHPMailer支持多种邮件发送方式,使用起来非常简单 1.下载PHPMailer https://github.com/PHPMailer/PHPMailer,下载完成加压后, 把下边的两个文件复 ...

  2. Linux发邮件之mail命令

    一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容 set from=1968089885@qq.com smtp="smtp.qq.com" set ...

  3. 测试MailUtils,作用是发邮件

    package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...

  4. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  5. 学习linux之用mail命令发邮件

    背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...

  6. linux mail利用外部邮箱地址发邮件

    mail命令发送邮件需要sendmail或postfix服务 三种常用格式发信 mail -s "标题" xxx@xxx.xxx #第一种方法,你可以把当前shell当成编辑器来用 ...

  7. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

  8. iOS中如何切换到发短信、打电话、发邮件

    我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...

  9. 发邮件 和 excel导出中文文件名

    /** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...

随机推荐

  1. Android项目实战(四十三):夜神模拟器

    一.下载模拟器到电脑 夜神模拟器 二.环境配置 计算机--系统--高级系统设置--环境变量 PATH 里面加入夜神模拟器的安装目录下的bin文件 三.启动模拟器 四.运行cmd命令,cd到夜神安装目录 ...

  2. 「Android」adb调试源码(针对dumpsys SurfceFlinger、trace.txt获取)

    首先对ADB作简单的阐述,接下来对adb shell dumpsys SurfaceFlinger服务的dump信息的查看.以及ANR问题如何获取trace文件并简单分析. -×*********** ...

  3. Java map 详解

    Map 提供了一个更通用的元素存储方法.Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值. 初始化一个集合:  Map<String, String> map = ...

  4. View体系第二篇:View滑动

    View滑动的基本思想:当点击事件传到View时,系统记下触摸点的坐标,手指移动时系统记下触摸后的坐标并计算出偏移量,然后根据偏移量修正View坐标. 实现View滑动共有6种方法:layout()方 ...

  5. PyCharm 使用Github管理Django项目

    不管是对于教程代码免费分享的需要,还是项目开发过程中的版本管理,Github都是我们首选的开源代码仓库,如果你没有私有仓库,并且不用保护代码,那么将项目上传到Github上是最佳的选择. 关于如何使用 ...

  6. SSL里的certificate格式资料小结

    在查看相关报文的时候,发现RFC5246本身并没有对certificate的格式AlgorithmIdentifier作深入的介绍,只说其格式必须是X509v3 DER表示,思虑良久才找到方向:后者的 ...

  7. php防范

    针对 PHP 的网站主要存在下面几种攻击方式: 1.命令注入(Command Injection) 2.eval 注入(Eval Injection) 3.客户端脚本攻击(Script Inserti ...

  8. Python开发【第二篇】:基本数据类型

    运算符 1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 5.成员运算 基本数据类型 所有对象所具备的方法都保存在类中.对象和类的关系,举个例子:哺乳动物是类:此类下有两个对象,一个为狗.一个为 ...

  9. 关于LVS负载均衡tcp长连接分发的解决思路

    虽然应用keepalived搞定了后端服务负载均衡和高可用性问题,但是在具体应用的时候,还是要注意很多问题.很多应用都用tcp或者http的长连接,因为建立tcp连接或者http连接开销比较大,而应用 ...

  10. Fluentd初探 简介与安装

    Fluentd是一个开源的数据收集器,专为处理数据流设计,有点像 syslogd ,但是使用JSON作为数据格式.它采用了插件式的架构,具有高可扩展性高可用性,同时还实现了高可靠的信息转发. 据分(Y ...