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 = ;//端口
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的更多相关文章
- # PHP - 使用PHPMailer发邮件
PHPMailer支持多种邮件发送方式,使用起来非常简单 1.下载PHPMailer https://github.com/PHPMailer/PHPMailer,下载完成加压后, 把下边的两个文件复 ...
- Linux发邮件之mail命令
一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容 set from=1968089885@qq.com smtp="smtp.qq.com" set ...
- 测试MailUtils,作用是发邮件
package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...
- SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享
SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...
- 学习linux之用mail命令发邮件
背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...
- linux mail利用外部邮箱地址发邮件
mail命令发送邮件需要sendmail或postfix服务 三种常用格式发信 mail -s "标题" xxx@xxx.xxx #第一种方法,你可以把当前shell当成编辑器来用 ...
- 打电话,发短信,发邮件,app跳转
1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...
- iOS中如何切换到发短信、打电话、发邮件
我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...
- 发邮件 和 excel导出中文文件名
/** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...
随机推荐
- 【Spring源码解读】bean标签中的属性(二)你可能还不够了解的 abstract 属性和 parent 属性
abstract 属性说明 abstract 在java的语义里是代表抽象的意思,用来说明被修饰的类是抽象类.在Spring中bean标签里的 abstract 的含义其实也差不多,表示当前bean是 ...
- 用cmd命令行编译JAVA程序时出现“找不到或无法加载主类”
今天复习Java基础知识时,使用cmd命令窗口进行编译Java文件发现了如下问题: 网上有很多的解决方法,和问题出现的讨论,以下方法是解决我出现这个问题方式. 解决方式: 重点是圈住的部分. 下面是我 ...
- 8. svg学习笔记-文本
毫无疑问,文本也是svg中组成的重要部分,在svg中,用<text>元素来创建文本,文本的使用格式如下: <text x="20" y="30" ...
- php学习----面向对象
面向对象 项目代码都应该由单个能起子程序作用的对象组成 重用性.灵活性.扩展性 变量 $this 代表自身的对象. PHP_EOL 为换行符. PHP 中创建对象 类创建后,我们可以使用 new 运算 ...
- ASP.NET -- WebForm -- 缓存Cache的使用
ASP.NET -- WebForm -- 缓存Cache的使用 把数据从数据库或文件中读取出来,放在内存中,后面的用户直接从内存中取数据,速度快.适用于经常被查询.但不经常变动的数据. 1. Te ...
- Ubuntu18.04多个版本GCC编译器的切换
今天make一个程序的时候,发现程序里面使用到了C++17的标准,而我的gcc仍然是4.8,考虑到系统是ubuntu18.04的,所以感觉应该gcc的版本不会这么低. cd到/usr/bin下,使用指 ...
- JQuery Plugin 开发
学习 JQuery 插件开发之后, 可以将自己平时常用的功能封装成插件, 便于在不同的项目之间使用. JQuery 官网上的 插件开发教程就很不错, 简单易懂. 参考网址: http://learn. ...
- March 07th, 2018 Week 10th Wednesday
Better later than never. 亡羊补牢,时犹未晚. Time and again all of us are told to complete the tasks assigned ...
- Java序列化(含transient)
什么是序列化? 我们创建的对象只有在Java虚拟机保持运行时,才会存在于内存中.如果想要超出Java虚拟机的生命周期,就可以将对象序列化,将对象状态转换为字节序列,写入文件(或socket传输),后面 ...
- eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一)
eclipse使用CXF3.1.*创建webservice服务端客户端以及客户端手机APP(一) 本篇博客主要包含五个内容: 1.CXF换将搭建以及eclipse配置CXF. 2.eclipse创建w ...