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”,即简单邮件传输协议.它是一组用于从源地址到目的 ...
随机推荐
- 动词时态=>1.动作的时间和状态
时态 什么是时态? 英语的时态,是由动作的时间 + 动作的状态:这俩一起构成了时态 动词的时间和状态在一起,合称时态 理论上的十六种时态 先将 时间和状态的概念搞清楚,再具体讨论,用什么词,去构成时态 ...
- 累加和为 K 的子数组问题
累加和为 K 的子数组问题 作者:Grey 原文地址: 博客园:累加和为 K 的子数组问题 CSDN:累加和为 K 的子数组问题 题目说明 数组全为正数,且每个数各不相同,求累加和为K的子数组组合有哪 ...
- 利用nginx自带的反向代理以及轮询功能实现应用的负载均衡
针对中间件部署的应用(war包),可使用nginx自带的反向代理以及轮询功能,实现应用的负载均衡. 一.架构图 二.环境准备 准备2套环境,如19.1.0.18:7001,19.1.0.16:7001 ...
- Java环境搭建(推荐jdk8)
本人使用的Windows10操作系统 1.Jdk8下载和安装 下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-d ...
- 使用gitee创建个人的图床
使用gitee创建个人的图床 1.如果还没有gitee(码云)账号,可以注册一个,注册后登陆进入个人中心 2.点击新建仓库 3.进入创建页面 创建成功 5.在本地电脑创建一个文件夹,专门用来放置要上传 ...
- vcenter的虚拟机开机进入bios
- (C++) 笔记 C++11 std::mutex std::condition_variable 的使用
#include <atomic> #include <chrono> #include <condition_variable> #include <ios ...
- 移动 VR 开发时要避免的 PC 渲染技术
更新:本文是为 Quest 1 开发人员编写的.虽然 Quest 2 建立在相同的架构上,但现在更容易为阴影贴图(以及其他需要从先前渲染过程中生成的纹理读取的简单技术)做预算. 尽管移动芯片组可以支持 ...
- Js前端导出csv
var myMemory = myObjectStore.objectStore; var myDataArray = myMemory.data; var myCsvString = "\ ...
- 【Shell案例】【for循环、seq生成】3、输出7的倍数
描述写一个 bash脚本以输出数字 0 到 500 中 7 的倍数(0 7 14 21...)的命令 方法1:in方式循环 [if的括号是中括号,中间的条件要有空格] [循环体用do和done配对] ...