C# 如何发送邮件消息
1.安装NUGET包
MailKit

2.代码如下
using MailKit.Net.Smtp;
using MimeKit;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks; namespace WebApplication1
{
public class MailHelper
{
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="subj">邮件标题</param>
/// <param name="bodys">邮件内容</param>
/// <param name="mailData">发送邮件需要的基本参数信息</param>
/// <returns></returns> public async Task SendMail(string subj, string bodys, SaleMail mailData)
{
#region 发邮件需要的基本参数 var fromMail = mailData.LoginAccount; //发件人邮箱账号
var pwd = mailData.LoginPwd;//发件人邮箱登录密码 var toMail = mailData.ReceivedUser;//接收人邮箱账号,多个接收人用逗号分割开
var otherUser = mailData.ReceivedOtherUser;//抄送人邮箱账号,多个抄送人用逗号分割开 var smtpserver = mailData.MailServer;//邮箱服务地址 // smtp.mxhichina.com
var port = mailData.MailPort;//邮箱端口:25 if (string.IsNullOrWhiteSpace(smtpserver) ||
port <= 0 ||
string.IsNullOrWhiteSpace(fromMail) ||
string.IsNullOrWhiteSpace(pwd) ||
string.IsNullOrWhiteSpace(toMail))
{
return;
} #endregion #region 发送内容
var bodyType = "html";//暂时只支持html类型的,后续可以添加其余类型
var message = new MimeMessage
{
Subject = subj,//邮件标题
Body = new TextPart(bodyType)
{
Text = bodys
}
};
#endregion #region 发送人
message.From.Add(new MailboxAddress("", fromMail));//发送人
#endregion #region 收件人 var toMailList = new List<string>();
if (!string.IsNullOrWhiteSpace(toMail))
{
toMailList = toMail.Split(',').ToList();
}
foreach (var item in toMailList)
{
var curToMail = item.Trim();
if (string.IsNullOrWhiteSpace(curToMail))
{
continue;
}
message.To.Add(new MailboxAddress("", curToMail));//接收人 } #endregion #region 抄送人
var others = new List<string>();
if (!string.IsNullOrWhiteSpace(otherUser))
{
others = otherUser.Split(',').ToList();
}
foreach (var s in others)
{
var curOther = s.Trim();
if (string.IsNullOrWhiteSpace(curOther))
{
continue;
}
message.Cc.Add(new MailboxAddress("", curOther));
} #endregion #region 进行发送邮件 SmtpClient smtpClient = new SmtpClient();
smtpClient.Connect(smtpserver, port);//连接邮箱:邮箱服务地址与端口
smtpClient.Authenticate(fromMail, pwd);//发件人邮箱登录密码与登录账号
await smtpClient.SendAsync(message);//发送消息
smtpClient.Disconnect(true); #endregion } } /// <summary>
/// 发送邮件需要的基本参数信息实体
/// </summary>
public class SaleMail
{ /// <summary>
/// 邮箱登录人(发送人)账号
/// </summary>
[Required]
[StringLength(200)]
[DefaultValue("")]
public string LoginAccount { get; set; } /// <summary>
/// (发送人)邮箱登录密码
/// </summary>
[Required]
[StringLength(200)]
public string LoginPwd { get; set; } /// <summary>
/// 接收人(多个按照逗号隔开)
/// </summary>
[Required]
[StringLength(200)]
[DefaultValue("")]
public string ReceivedUser { get; set; } /// <summary>
/// 抄送人(多个按照逗号隔开)
/// </summary>
[Required]
[StringLength(200)]
[DefaultValue("")]
public string ReceivedOtherUser { get; set; } /// <summary>
/// 邮箱服务地址(smtp.mxhichina.com)
/// </summary>
[Required]
[StringLength(200)]
[DefaultValue("")]
public string MailServer { get; set; } /// <summary>
/// 邮箱端口(25)
/// </summary>
[Required]
public int MailPort { get; set; } }
}
3.常见企业邮箱POP/SMTP/IMAP服务器地址设置
原文:http://mail.lzcdc.com/v2/help/detail?id=57
| 全球云邮 | ||||
| 协议 | 无加密 | SSL / TSL | 服务器地址 | |
| POP3 | 110 | 995 | pop3.yunyou.top | |
| SMTP | 25 | 465 / 587 | smtp.yunyou.top | |
| IMAP | 143 | 993 | imap.yunyou.top | |
| 新浪企业邮箱 | ||||
| 协议 | 无加密 | 北京机房网通用户 | 北京机房电信用户 | 广州机房电信用户 |
| POP3 | 110 | pop3.sina.net | pop3x.sina.net | gzpop3.sina.net |
| SMTP | 25 | smtp.sina.net | smtpx.sina.net | gzsmtp.sina.net |
| IMAP | 143 | imap.sina.net | imap.sina.net | imap.sina.net |
| 搜狐企业邮箱 | ||||
| 协议 | 无加密 | 服务器地址 | ||
| POP3 | 110 | mail.sohu.net | ||
| SMTP | 25 | mail.sohu.net | ||
| IMAP | 143 | mail.sohu.net | ||
| 21CN企业邮箱 | ||||
| 协议 | 无加密 | SSL / TSL | 国内服务器 | 海外服务器 |
| POP3 | 110 | 995 | Pop.bnet.cn | Pop-enthk.bnet.cn |
| SMTP | 25 | 465 / 587 | smtp.bnet.cn | smtp-enthk.bnet.cn |
| IMAP | 143 | 993 | imap.bnet.cn | imap-enthk.bnet.cn |
| 阿里云企业邮箱(原万网邮箱) | ||||
| 协议 | 无加密 | SSL / TSL | 服务器地址 | |
| POP3 | 110 | 995 | pop3.mxhichina.com | |
| SMTP | 25 | 465 | smtp.mxhichina.com | |
| IMAP | 143 | 993 | imap.mxhichina.com | |
| 腾讯企业邮箱 | ||||
| 协议 | 无加密 | SSL / TSL | 国内服务器地址 | 海外服务器地址 |
| POP3 | 110 | 995 | pop.exmail.qq.com | hwpop.exmail.qq.com |
| SMTP | 25 | 465 | smtp.exmail.qq.com | hwsmtp.exmail.qq.com |
| IMAP | 143 | 993 | imap.exmail.qq.com | hwimap.exmail.qq.com |
| 163网易企业邮箱 | ||||
| 协议 | 无加密 | SSL / TSL | 服务器地址 | |
| POP3 | 110 | 995 | pop.qiye.163.com | |
| SMTP | 25 | 994 | smtp.qiye.163.com | |
| IMAP | 143 | 993 | imap.qiye.163.com |
|
C# 如何发送邮件消息的更多相关文章
- 为 Confluence 6 配置发送邮件消息
如何配置 Confluence 向外发送邮件: 进入 > 基本配置(General Configuration) > 邮件服务器(Mail Servers).这里列出了所有当前配置的 S ...
- 旧版asp.net 发送邮件代码
说到发送邮件发送,先提一下SMTP(呵呵,高手就跳过这一段吧!). SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议.它是一组用于从源地址到目的地址传 ...
- Dynamics 365使用代码发送邮件给指定邮箱地址
摘要: 微软动态CRM专家罗勇 ,回复303或者20190213可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当然,首先要 ...
- iOS12系统应用开发发送邮件
iOS12系统应用开发发送邮件 消息分享是应用社交化和营销的重要途径.除了开发者自己搭建专有的消息分享渠道之外,还可以借助系统自带的各种途径.iOS提供了3种快速分享消息的方式,分别为发送邮件.发送短 ...
- django中向用户发送邮件信息
发送邮件来让用户激活,因此,邮件中需要包含用户信息.但用户信息需要加密才可以.因此加密采用的是itsdangerous中的TimedJSONWebSignatureSerializer. 参考链接:h ...
- grails email 发送邮件插件
1.配置email插件,在Config.groovy文件中配置: plugins { compile ":mail:1.0.5" } 2.配置Config.groovy文件: gr ...
- php引入PHPMailer发送邮件
昨天做了一个发送邮件的功能,如果直接用mail()函数,需要拥有自己的邮件服务器,所有引入PHPMailer类方便快捷,简单写一下开发步骤: 一.拥有自己的邮箱账号(作为发件人邮箱) 分两种情况: 1 ...
- android 发送邮件--实现 send email for android
Android 发送邮件消息 用途:发送验证码,通过邮箱找回密码 不需要调用客户端直接使用代码进行发送 本项目使用到的jar包–本文结尾会附带下载链接 activation.jar additionn ...
- ASP.NET免费发送邮件|
因为之前有做过邮件发送的项目,最近也看一些朋友问起这个的做法,现在拿来给大家查看下.因为那时候是公司的服务器配置的.所以后来自己便在网上找到了一个可以任何个人都是可以使用的邮件发送.小弟新手,高手看到 ...
- System.Web.mail ----虚拟发件人发送邮件
转载别人的 使用SMTP发送邮件 说到邮件发送,先提一下SMTP. SMTP的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议.它是一组用于从源地址到目的 ...
随机推荐
- 齐博x1工单碎片模板制作教程
可以把工单插入到任何频道的内容里边,如下图所示 碎片模板制作标准如下 <form action="{:urls('order/add')}" class="wn_f ...
- 人人都懂的HTML基础知识-HTML教程(1)
01.HTML基础简介 HTML (HyperText Markup Language,超文本标记语言) 不是一门编程语言,而是一种用于定义内容结构的标记语言,用来描述网页内容,文件格式为.html. ...
- 知识图谱-生物信息学-医学论文(BMC Bioinformatics-2022)-挖掘阿尔茨海默病相关KG来确定潜在的相关语义三元组用于药物再利用
论文标题: Mining On Alzheimer's Diseases Related Knowledge Graph to Identity Potential AD-related Semant ...
- .NET中IActionResult的返回类型
ActionResult继承了IActionResult JsonResult.RedirectResult.FileResult.ViewResult.ContentResult均继承了Action ...
- 微信小程序——悬浮按钮
关键: position: fixed; wxml: <navigator url="/pages/issue/index"><image class='i ...
- Dockerfile 跨阶段多阶段使用 ARG 命令
若要想 Dockerfile 的 ARG 命令可以跨多个阶段使用,需要有以下几步: 先在文件最前面使用 ARG 命令定义 然后在每个阶段分别引用 ARG 命令使用 一个示范的 Dockerfile 文 ...
- Go语言核心36讲35
到目前为止,我们已经一起学习了Go语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁.读写锁.条件变量和原子操作,以及Go语言特有的几个同步工具: sync/atomic.Value: syn ...
- ES文件浏览器局域网传输文件分析
软件下载链接 1.前言 我之前从手机上传输到电脑上一些apk进行分析,都是使用es文件浏览器这款软件获取 app,传输方面使用QQ,这样很麻烦,走外网流量暂且不提,总是感觉浪费掉了局域网这个环境.简单 ...
- ssh框架中文保存数据库MySQL乱码
检查后台获取前端页面数据打印到console控制台无乱码:tomcat配置没有问题: 检查MySQL数据库编码设置:字符集:utf8 -- UTF-8 Unicode,排序规则:utf8_genera ...
- python-面向过程与函数式
面向过程与函数式 面向过程 "面向过程"核心是"过程"二字,"过程"指的是解决问题的步骤,即先干什么再干什么......,基于面向过程开发程 ...