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”,即简单邮件传输协议.它是一组用于从源地址到目的 ...
随机推荐
- 怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
1.如何在前端vue中隐藏某一个元素(el-form-item怎样隐藏) 给每项表单项添加一个自己的id名,并用v-model绑定相对应的数据,利用v-if根据上一个表单项的数据值来进行显示或隐藏 & ...
- vue3+element-plus+登录逻辑token+环境搭建
vue3+element-plus+登录逻辑token环境搭建 安装脚手架工具 1 npm i @vue/cli@4.5.13 -g 验证是否安装成功 1 vue -V # 输出 @vue/cli 4 ...
- Mysql之MGR高可用实战案例
MGR高可用实战案例 1.环境准备 node1 rocky8.6 10.0.0.8 node2 rocky8.6 10.0.0.18 node3 rocky8.6 10.0.0.28 2.所有节点更改 ...
- jQuery+bootstrap实现有省略号的数据分页
1.前言 在前端通过ajax请求数据后,可以通过bootstrap实现分页.由于bootstrap只提供分页的按钮的样式.数据分页我们需要实现页码跳转,上一页下一页,数据过多显示省略号,点击省略号能快 ...
- Echarts - legend属性设置
legend: { orient: 'horizontal', // 'vertical' x: 'right', // 'center' | 'left' | {number}, y: 'top', ...
- 带你了解NLP的词嵌入
摘要:今天带领大家学习自然语言处理中的词嵌入的内容. 本文分享自华为云社区<[MindSpore易点通]深度学习系列-词嵌入>,作者:Skytier. 1 特征表示 在自然语言处理中,有一 ...
- csp2022第一轮游记
DAY -7? 学校没买桶装水!我一时半会不去打水,真的渴.果不其然开始咳嗽了.DAY -1 隔壁班同学主动申请停课了,我也跟来复习,这天主要的成果是把选择题错误控制到2-3题,顺便整理了一点笔记. ...
- Mp3文件标签信息读取和写入(Kotlin)
原文:Mp3文件标签信息读取和写入(Kotlin) - Stars-One的杂货小窝 最近准备抽空完善了自己的星之小说下载器(JavaFx应用 ),发现下载下来的mp3文件没有对应的标签 也是了解可以 ...
- 记录一次新节点加入K8S集群
新节点初始化 安装docker kubelet kubeadm(指定版本) #先查看当前集群docker版本 [root@lecode-k8s-master manifests]# docker ve ...
- 2022春每日一题:Day 29
题目:Mishka and Interesting sum 这题稍微分析就能发现实际这个题就是求区间异或和异或上区间不同数的异或和,因此直接转化为HH的项链. 代码: #include <cst ...