c# Winform实现发送邮件
邮件发送类 来源网上 稍作调整。。。出处忘了
/**
* 命名空间: EmailSend
* 类 名: EmailSend
*
* 作者 变更内容 变更日期
* ─────────────────────────────────
* XXX 初版 2018-10-31 09:55:42
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Text; namespace EmailSend
{
public class EmailSend
{ /// <summary>
/// 发送者
/// </summary>
public string mailFrom { get; set; } /// <summary>
/// 收件人
/// </summary>
public string[] mailToArray { get; set; } public enumSMTPType mailSMTP { get; set; } /// <summary>
/// 抄送
/// </summary>
public string[] mailCcArray { get; set; } /// <summary>
/// 标题
/// </summary>
public string mailSubject { get; set; } /// <summary>
/// 正文
/// </summary>
public string mailBody { get; set; } /// <summary>
/// 发件人密码
/// </summary>
public string mailPwd { get; set; } /// <summary>
/// SMTP邮件服务器
/// </summary>
public string host { get; set; } /// <summary>
/// 正文是否是html格式
/// </summary>
public bool isbodyHtml { get; set; } /// <summary>
/// 附件
/// </summary>
public string[] attachmentsPath { get; set; } #region 发送邮件
/// <summary>
/// 发送邮件
/// </summary>
/// <returns></returns>
public bool Send()
{
//使用指定的邮件地址初始化MailAddress实例
MailAddress maddr = new MailAddress(mailFrom);
//初始化MailMessage实例
MailMessage myMail = new MailMessage(); //向收件人地址集合添加邮件地址
if (mailToArray != null)
{
for (int i = ; i < mailToArray.Length; i++)
{
myMail.To.Add(mailToArray[i].ToString());
}
} //向抄送收件人地址集合添加邮件地址
if (mailCcArray != null)
{
for (int i = ; i < mailCcArray.Length; i++)
{
myMail.CC.Add(mailCcArray[i].ToString());
}
}
//发件人地址
myMail.From = maddr; //电子邮件的标题
myMail.Subject = mailSubject; //电子邮件的主题内容使用的编码
myMail.SubjectEncoding = Encoding.UTF8; //电子邮件正文
myMail.Body = mailBody; //电子邮件正文的编码
myMail.BodyEncoding = Encoding.Default; myMail.Priority = MailPriority.High; myMail.IsBodyHtml = isbodyHtml; //在有附件的情况下添加附件
try
{
if (attachmentsPath != null && attachmentsPath.Length > )
{
Attachment attachFile = null;
foreach (string path in attachmentsPath)
{
attachFile = new Attachment(path);
myMail.Attachments.Add(attachFile);
}
}
}
catch (Exception err)
{
throw new Exception("在添加附件时有错误:" + err);
} SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = true; //指定发件人的邮件地址和密码以验证发件人身份
smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd); //设置SMTP邮件服务器
smtp.Host = host; try
{
//将邮件发送到SMTP邮件服务器
smtp.Send(myMail);
return true; }
catch (System.Net.Mail.SmtpException ex)
{
return false;
} }
#endregion #region 发送邮件显示异常
/// <summary>
/// 发送邮件显示异常
/// </summary>
/// <returns></returns>
public bool Send(out string errs)
{
//使用指定的邮件地址初始化MailAddress实例
MailAddress maddr = new MailAddress(mailFrom);
//初始化MailMessage实例
MailMessage myMail = new MailMessage(); //向收件人地址集合添加邮件地址
if (mailToArray != null)
{
for (int i = ; i < mailToArray.Length; i++)
{
myMail.To.Add(mailToArray[i].ToString());
}
} //向抄送收件人地址集合添加邮件地址
if (mailCcArray != null)
{
for (int i = ; i < mailCcArray.Length; i++)
{
myMail.CC.Add(mailCcArray[i].ToString());
}
}
//发件人地址
myMail.From = maddr; //电子邮件的标题
myMail.Subject = mailSubject; //电子邮件的主题内容使用的编码
myMail.SubjectEncoding = Encoding.UTF8; //电子邮件正文
myMail.Body = mailBody; //电子邮件正文的编码
myMail.BodyEncoding = Encoding.Default; myMail.Priority = MailPriority.High; myMail.IsBodyHtml = isbodyHtml; //在有附件的情况下添加附件
try
{
if (attachmentsPath != null && attachmentsPath.Length > )
{
Attachment attachFile = null;
foreach (string path in attachmentsPath)
{
attachFile = new Attachment(path);
myMail.Attachments.Add(attachFile);
}
} }
catch (Exception err)
{
throw new Exception("在添加附件时有错误:" + err);
} SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = true; //指定发件人的邮件地址和密码以验证发件人身份
smtp.Credentials = new System.Net.NetworkCredential(mailFrom, mailPwd); //设置SMTP邮件服务器
smtp.Host = host; try
{
//将邮件发送到SMTP邮件服务器
smtp.Send(myMail);
errs = "";
return true; }
catch (System.Net.Mail.SmtpException ex)
{
errs = ex.Message;
return false; } }
#endregion
}
}
发送断代码
private void button2_Click(object sender, EventArgs e)
{
Email email = new Email();
email.mailFrom = "aaaa@126.com";
email.mailPwd = "密码";
email.mailSubject = "邮件主题31";
email.mailBody = "这是一封测试邮件";
email.isbodyHtml = false; //是否是HTML
email.host = "smtp.126.com";//如果是QQ邮箱则:smtp:qq.com,依次类推
// email.host = "smtp.qq.com";
email.mailToArray = new string[] { "333@qq.com" };//接收者邮件集合
//email.mailCcArray = new string[] { "******@qq.com" };//抄送者邮件集合 if (email.Send())
{
MessageBox.Show("ok"); }
else
MessageBox.Show("NoOK");
}
发送的邮件要开通smtp功能。这个网站进入邮箱-->设置-->pop/smtp可以找到
c# Winform实现发送邮件的更多相关文章
- WinForm 进程、线程、TreeView递归加载、发送邮件--2016年12月13日
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); Process.S ...
- C#发送邮件
以下代码已用 .yeah .qq 以及本人公司邮箱测试通过,可多发,可挂附件 本次测试邮件发送类,是用的winform 页面如下 窗口的后台代码如下: using System; using Syst ...
- c# 发送邮件、附件 分类: C# 2014-12-17 16:41 201人阅读 评论(0) 收藏
WinForm窗体代码如下: <span style="font-size:14px;">using System; using System.Collections. ...
- 使用c#给outlook添加任务、发送邮件
原文:使用c#给outlook添加任务.发送邮件 c#在使用outlook提供的一些API时,需要将outlook相关的com引用到项目中. 具体方法就是用vs打开工程后,在工程上添加引用,在com选 ...
- MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式
MVC的验证(模型注解和非侵入式脚本的结合使用) @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
装饰者模式的学习(c#) 案例转自https://www.cnblogs.com/stonefeng/p/5679638.html //主体基类 using System;using System.C ...
- Excel催化剂开源第29波-在Winform上使用富文本编辑器控件
富文本编辑器,一般都是BS架构专利一般,好像百度有一个开源的比较出名,但无奈这些都只能用在JS上,在BS网页端开发上使用.像Winform开发的VSTO,只能羡慕的份.和一般Winform上用的Ric ...
- C# WinForm 使用SMTP协议发送QQ邮箱验证码
文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104336604 前言 在程序设计中,发送验证码是常见的一个功能,用 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
随机推荐
- idea新手教程 如何springmvc创建Maven项目
1.点击Create project,选择maven,勾选Create from archetype选择web-app,如图 2 输入 Group-Id //组织名,也是作者名 Arti ...
- Git文件操作命令
添加文件 git add 添加指定文件: git add test.txt Test.java 添加所有文件: git add . 取消添加文件 git reset HEAD – filename g ...
- Oracle学习笔记<5>
组函数(多值函数) 数据库中函数的分类:1)单值函数 Single Rows Functions 特点:n条数据参与函数处理,最终得到n条结果.2)多值函数(组函数) Multiple Rows Fu ...
- matplotlib系列——线的属性
幕布视图:https://mubu.com/doc/alG8r_3iSw 参考文献:嵩天的Python课程讲义 示例(更多示例:matplotlib系列——折线图) 效果 颜色 线的风格 标记类型 ...
- Hadoop本地环境安装
一.服务器环境 本人用的是阿里云的ECS的入门机器,配置1核2G,1M带宽,搭了个Hadoop单机环境,供参考 Linux发行版本:Centos7 JDK:阿里云镜像市场中选择JDK8 二.安装步骤 ...
- 使用 lombok 简化代码
使用前的准备 1.Lombok 是一种 Java™ 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO).它通过注解实现这一目的. <1>添加 ...
- shell变量及相关命令
- linux 系统磁盘管理体系
目录 linux 系统磁盘管理体系 一.磁盘的基本概念 二.磁盘的内部结构 三.磁盘的外部结构 四.磁盘的接口及类型 五.fdisk磁盘分区实践 六.gdisk 分区 七.parted 高级分区工具. ...
- LNMP环境安装
一.LNMP 1.使用LNMP的优点: 资源占用少 更多并发 代理服务器 热启动 稳定高效 负载均衡 邮件服务器 2.安装前准备: 2.1查看防火墙(默认开启): [root@localhost ~] ...
- 转载:对比Angular/jQueryUI/Extjs:没有一个框架是万能的
Angular不能做什么?对比Angular/jQueryUI/Extjs 框架就好比兵器,你得明白你手里拿的是屠龙刀还是倚天剑,刀法主要是砍,剑法主要是刺.对于那些职业喷子和脑残粉,小僧送你们两个字 ...