[C#]SmtpClient发送邮件
这几天开发的从数据库抓起数据处理完已邮件发出来,只实现的To的个人的发送,To的群组,CC的个人和群组,BCC的个人和群组都没有成功。试了好久,感觉是Exchange服务器配置的问题,但又无法访问Exchange的服务器,所以暂时先放弃完善。
测试的过程中了解好多只是,现在记录一下
下面的代码示例演示如何通过使用发送一封电子邮件SmtpClient, MailAddress,和MailMessage类。
public static void CreateCopyMessage(string server)
{
MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller");
MailAddress to = new MailAddress("jane@contoso.com", "Jane Clayton");
MailMessage message = new MailMessage(from, to);
// message.Subject = "Using the SmtpClient class.";
message.Subject = "Using the SmtpClient class.";
message.Body = @"Using this feature, you can send an email message from an application very easily.";
// Add a carbon copy recipient.
MailAddress copy = new MailAddress("Notification_List@contoso.com");
message.CC.Add(copy);
SmtpClient client = new SmtpClient(server);
// Include credentials if the server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
Console.WriteLine("Sending an email message to {0} by using the SMTP host {1}.",
to.Address, client.Host); try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateCopyMessage(): {0}",
ex.ToString() );
}
}
MailAddress类由SmtpClient和MailMessage类来存储地址信息的电子邮件。
邮件地址组成User名称,Host名称和 (可选) DisplayName。 DisplayName可以包含非 ASCII 字符,如果对它们进行编码。
MailAddress类支持以下邮件地址格式:
简单的地址格式为
user@host
。 如果DisplayName未设置,这是生成的邮件地址格式。标准带引号的显示名称格式的
"display name" <user@host>
。 如果DisplayName设置,这是生成的格式。前后添加引号DisplayName为
display name <user@host>
,如果这些信息将不包含。中支持 Unicode 字符DisplayName属性。
一个User名称加上引号。 例如
"user name"@host
。在用户名中的连续和尾随点。 例如
user...name..@host
。用括号括起来的域原义字符。 例如
<user@[my domain]>
。注释。 例如
(comment)"display name"(comment)<(comment)user(comment)@(comment)domain(comment)>(comment)
。 在传输之前会删除注释。
使用逗号来分隔的邮件地址列表中的元素。 因此,不应在列表中的带引号的显示名称中使用逗号。 允许以下邮件地址:
"John, Doe" <user@host>, "Bob, Smith" <user2@host>
不允许以下邮件地址:
John, Doe <user@host>, Bob, Smith <user2@host>
引号可嵌入到带引号的字符串,但它们必须进行转义。 允许以下邮件地址:
"John \"Jr\" Doe" <user@host>
"\"John \\\"Jr\\\" Doe\" <user@host>"
不允许以下邮件地址:
"John "Jr" Doe" <user@host>
用户名时注意加引号,开头的字符串 (或以逗号) 之间的所有文本,且地址被认为是一部分DisplayName,包括注释。 例如:
(non comment) unquoted display (non comment) name (non comment) <user@host>
尽管MailAddress类接受有效、 其他邮件服务器将不会接受邮件地址的邮件地址。
MailAddress类不支持以下邮件地址格式:
混合使用带引号和不带引号的显示名称。 例如
display "name" <user@host>
。组,如在 RFC 2822 第 3.4 IETF 发布的节中定义。
过时的用户的名称格式
"user"."name"@host
,user."name"@host
或"user".name@host
。
MailAddress Class
https://docs.microsoft.com/zh-cn/dotnet/api/system.net.mail.mailaddress?view=netframework-4.7.2
MailMessage.CC
MailMessage
[C#]SmtpClient发送邮件的更多相关文章
- 利用System.Net.Mail 的SmtpClient发送邮件
原文:利用System.Net.Mail 的SmtpClient发送邮件 几个月前总结过关于Jmail发送邮件,当时用Jmail发送邮件发送速度有点慢(可能对Jmail了解不是很多).现在改为用微软提 ...
- SmtpClient发送邮件时附件名称乱码
在用户环境发现一个现象,使用System.Net.Mail.SmtpClient发送邮件,当附件名包含中文且长度较长时,最终的邮件里附件名会乱掉,写个简单的测试程序: var mail = new M ...
- .NET 通过SmtpClient发送邮件 提示 4.7.1 service unavailable try again later 解决办法
最近用C#的SmtpClient发送电子邮件碰到这个错误: 正在处理错误. 服务器响应为:4.7.1 Service unavailable - try again later 换了其他的SMTP服务 ...
- C# 使用 SmtpClient 发送邮件注意项
最近有邮件发送需求,使用 C# SmtpClient 对象发送邮件 , 报异常, 如下错误代码: 调整代码顺序后,发送邮件成功! 注意:一定要先设置 EnableSsl和UseDefaultCred ...
- C#使用SmtpClient发送邮件
目的:写一个可发送邮件的DLL. 原理: 例如A使用163邮箱发送邮件给B(qq邮箱).首先A会把邮件通过SMTP(Simple Mail Transfer Protocol)协议传输到163的Smt ...
- SmtpClient发送邮件
使用第三方SMTP服务器来发送邮件.如网易: SmtpClient sc = new SmtpClient("smtp.126.com"); sc.Credentials = ne ...
- 记一次SmtpClient发送邮件引发的系列问题
前提:公司同事离职,我接手同事负责的项目. 事件:某天公司的分析人员,说软件中的邮件发送功能不能使用,总是提示"邮件发送失败". 本地能够正常发送,发布WCF到服务器IIS上,再调 ...
- SmtpClient 发送邮件
利用SmtpClient 代码发送邮件. 简单测试代码: static void Main(string[] args) { MailMessage msg = new MailMessage(); ...
- C#使用SmtpClient发送邮件解决授权码配置问题
授权码,(新版邮箱在开启smtp权限设置时,会生成授权码)如果不做配置,客户端是不能发送邮件的 //指定邮箱账号和密码,需要注意的是,这个密码是你在QQ邮箱设置里开启服务的时候给你的那个授权码 Smt ...
- asp.net利用SmtpClient发送邮件
using System; using System.Data; using System.Web.UI; using System.Data.OracleClient; using DBUtilit ...
随机推荐
- C++Primer第五版——习题答案详解(八)
习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html 第9章 顺序容器 练习9.1 a.list,需要按字典序插入,可能插入位置在中间 b.d ...
- python之路——15
王二学习python的笔记以及记录,如有雷同,那也没事,欢迎交流,wx:wyb199594 复习 1.迭代器 1.可迭代协议:含有iter 2.迭代器协议:含有iter和next 3.特点:节省内存, ...
- LTE学习笔记(一)——背景知识
一.标准化组织 无线通信技术的演进离不开一些标准化组织. 1.ITU(International Telecommunication Union) 国际电信联盟,主要任务是制定标准,分配无线频谱资源, ...
- docker network基础
前面介绍了nginx与php两个容器间是如何进行通信的: [root@docker ~]# docker run -d --name=php -v /www:/usr/local/nginx/html ...
- redis持久化 (rdb
RDB(快照持久化) RDB(redis database),可以理解为快照/内存快照,RDB持久化过程是将当前进程中的数据生成快照存储到硬盘中 触发机制RDB持久化的触发机制分为两种,手动触发和自动 ...
- 用户名、密码等15个常用的js正则表达式
本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期. Q ...
- leetCode21: 合并两个有序列表
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2- ...
- linux下自定义dubbo的shell脚本
- 性能监控工具以及java堆分析OOM
一.性能监控工具 1.系统性能监控 Linux -确定系统运行的整体状态,基本定位问题所在 -uptime: ------系统时间 ------运行时间(例子中为127天) ------连接数(每 ...
- 开源项目初涉(C++自我学习开始)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://i.cnblogs.com/EditPosts.aspx?postid=8428885 临近2018农历新年,我还在上班,哈哈. ...