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”,即简单邮件传输协议.它是一组用于从源地址到目的 ...
随机推荐
- python基础之常用数据类型和字符串
一.数据类型 在python3中有六大标准数据类型:Numbers(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionaries(字典). 其中: ...
- LcdTools如何自定义读写PX01 SSD2828寄存器
LcdToos打开相应的工程文件,连接PX01并开启点亮屏使LcdTools开关处于开启状态. 切到"测试设置"栏,在"Bridge控制"栏,在"Ad ...
- element-ui el-table 高度自适应
element-ui el-table 高度自适应 <div ref="searchHeader" class="div_search search_title& ...
- java简易两数计算器
public class calculator { public static void main(String[] args) { Scanner scanner = new Scanner(Sys ...
- python 爬虫 TCL SSL 安全证书问题
其实很复杂 但也很简单 只需要在requests爬虫编写前 加上这句话 requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'DH+AES:RS ...
- 5.django-模型ORM
Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库的操作,通过定义模型类来完成对数据库中表的操作 O:Object,也就是类对象的意思 R:Relation,关系数据库中表的意思 M: ...
- API 如何选择 REST,GraphQL还是gRPC
关于API的演进 CORBA RDA XML-RPC SOAP REST JSON-RPC ODATA GraphQL gRPC gRPC是什么?
- 【深入浅出 Yarn 架构与实现】3-2 Yarn Client 编写
上篇文章介绍了编写 Yarn Application 的整体框架流程,本篇文章将详细介绍其中 Client 部分的编写方式. 一.Yarn Client 编写方法 本篇代码已上传 Github: Gi ...
- 17、输入一行以空格分隔的英文,判断其共有多少单词,不能包含冠词a
/*输入一行以空格分隔的英文,判断其共有多少单词,不能包含冠词a */ #include <stdio.h> #include <stdlib.h> int isWord(ch ...
- Android Studio 卡在download fastutil下载慢
需要替换国内镜像,现在阿里云地址已经更新了.需要使用新的地址.可以参考 https://developer.aliyun.com/mvn/guide 以下是更改buil.gradle文件的代码 // ...