之前自己从来没有做过发送邮箱的功能,前段时间项目需要,在找了很多帖子之后,终于实现了。

之后有整理了一下,写了一个类。直接给类传递信息,就可以发送了。
这里还需要说明的是,发送邮箱需要开通POP3/SMTP服务,否则QQ邮箱,网易邮箱等会报错。接收的邮箱就不用开通啦,开通方法百度一下就知道啦。
public static class EmailHelper
{
/// <summary>
/// 发送邮件
/// </summary>
/// <param name="subject">邮件主题</param>
/// <param name="msg">邮件内容</param>
/// <param name="filePath">附件地址,如果不添加附件传null或""</param>
/// <param name="senderEmail">发送人邮箱地址</param>
/// <param name="senderPwd">发送人邮箱密码</param>
/// <param name="recipientEmail">接收人邮箱</param>
public static void SendMail(string subject, string msg, string filePath, string senderEmail, string senderPwd, params string[] recipientEmail)
{
if (!CheckIsNotEmptyOrNull(subject, msg, senderEmail, senderPwd) || recipientEmail == null || recipientEmail.Length == 0)
{
throw new Exception("输入信息无效");
}
try
{
string[] sendFromUser = senderEmail.Split('@');
//构造一个Email的Message对象
MailMessage message = new MailMessage();
//确定smtp服务器地址。实例化一个Smtp客户端
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp." + sendFromUser[1]);
//构造发件人地址对象
message.From = new MailAddress(senderEmail, sendFromUser[0], Encoding.UTF8);
//构造收件人地址对象
foreach (string userName in recipientEmail)
{
message.To.Add(new MailAddress(userName, userName.Split('@')[0], Encoding.UTF8));
}
if (!string.IsNullOrEmpty(filePath))
{
Attachment attach = new Attachment(filePath);
//得到文件的信息
ContentDisposition disposition = attach.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(filePath);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(filePath);
disposition.ReadDate = System.IO.File.GetLastAccessTime(filePath);
//向邮件添加附件
message.Attachments.Add(attach);
}
//添加邮件主题和内容
message.Subject = subject;
message.SubjectEncoding = Encoding.UTF8;
message.Body = msg;
message.BodyEncoding = Encoding.UTF8;
//设置邮件的信息
client.DeliveryMethod = SmtpDeliveryMethod.Network;
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = false;
//如果服务器支持安全连接,则将安全连接设为true。
//gmail,qq支持,163不支持
switch (sendFromUser[1])
{
case "gmail.com":
case "qq.com":
client.EnableSsl = true;
break;
default:
client.EnableSsl = false;
break;
}
//设置用户名和密码。
client.UseDefaultCredentials = false;
//用户登陆信息
NetworkCredential myCredentials = new NetworkCredential(senderEmail, senderPwd);
client.Credentials = myCredentials;
//发送邮件
client.Send(message);
}
catch (Exception ex)
{
throw (ex);
}
}
/// <summary>
/// 验证所有传入字符串不能为空或null
/// </summary>
/// <param name="ps">参数列表</param>
/// <returns>都不为空或null返回true,否则返回false</returns>
public static bool CheckIsNotEmptyOrNull(params string[] ps)
{
if (ps != null)
{
foreach (string item in ps)
{
if (string.IsNullOrEmpty(item)) return false;
}
return true;
}
return false;
}
}
直接调用方法,传递需要发送的信息,就可以发送邮箱了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# C#
# 发送邮箱
# C# 邮箱mail 发送类
# c#调用qq邮箱smtp发送邮件修改版代码分享
# 获取外网IP并发送到指定邮箱的vbs代码[已测]
# Java基于JavaMail实现向QQ邮箱发送邮件
# Python实现给qq邮箱发送邮件的方法
# 使用vbs获得外网ip并发送到邮箱里
# VBS获取外网IP地址并发送到指定邮箱的代码
# 在Laravel框架里实现发送邮件实例(邮箱验证)
# java实现163邮箱发送邮件到qq邮箱成功案例
# 发送邮件
# 就可以
# 为空
# 送人
# 的是
# 都不
# 设为
# 从来没有
# 做过
# 找了
# 写了
# 还需要
# 不支持
# 网易
# 报错
# 送了
# 前段时间
# 用户登陆
# 大家多多
# 则将
相关文章:
如何在西部数码注册域名并快速搭建网站?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
建站之星ASP如何实现CMS高效搭建与安全管理?
如何快速搭建高效可靠的建站解决方案?
如何通过多用户协作模板快速搭建高效企业网站?
如何用PHP快速搭建CMS系统?
如何使用Golang table-driven基准测试_多组数据测量函数效率
宁波免费建站如何选择可靠模板与平台?
自助网站制作软件,个人如何自助建网站?
Android自定义listview布局实现上拉加载下拉刷新功能
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
如何实现建站之星域名转发设置?
如何配置WinSCP新建站点的密钥验证步骤?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
如何快速重置建站主机并恢复默认配置?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
浅谈Javascript中的Label语句
建站之星2.7模板快速切换与批量管理功能操作指南
如何选择网络建站服务器?高效建站必看指南
简历在线制作网站免费版,如何创建个人简历?
如何选择美橙互联多站合一建站方案?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
如何在企业微信快速生成手机电脑官网?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
Swift中循环语句中的转移语句 break 和 continue
山东云建站价格为何差异显著?
如何通过商城自助建站源码实现零基础高效建站?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
建站主机选择指南:服务器配置与SEO优化实战技巧
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何通过WDCP绑定主域名及创建子域名站点?
C#怎么使用委托和事件 C# delegate与event编程方法
南宁网站建设制作定制,南宁网站建设可以定制吗?
郑州企业网站制作公司,郑州招聘网站有哪些?
黑客如何通过漏洞一步步攻陷网站服务器?
高防服务器租用指南:配置选择与快速部署攻略
制作网站的模板软件,网站怎么建设?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
如何通过虚拟机搭建网站?详细步骤解析
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
盘锦网站制作公司,盘锦大洼有多少5G网站?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
如何在阿里云香港服务器快速搭建网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何快速查询网址的建站时间与历史轨迹?
*请认真填写需求信息,我们会在24小时内与您取得联系。