这几天开发的从数据库抓起数据处理完已邮件发出来,只实现的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类由SmtpClientMailMessage类来存储地址信息的电子邮件。

邮件地址组成User名称,Host名称和 (可选) DisplayName。 DisplayName可以包含非 ASCII 字符,如果对它们进行编码。

MailAddress类支持以下邮件地址格式:

  • 简单的地址格式为user@host。 如果DisplayName未设置,这是生成的邮件地址格式。

  • 标准带引号的显示名称格式的"display name" <user@host>。 如果DisplayName设置,这是生成的格式。

  • 在前后添加尖括号User名称,Host名称"display name" user@host如果这些信息将不包含。

  • 前后添加引号DisplayNamedisplay 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"@hostuser."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

https://docs.microsoft.com/zh-cn/dotnet/api/system.net.mail.mailmessage.cc?view=netframework-4.7.2#System_Net_Mail_MailMessage_CC

MailMessage

https://docs.microsoft.com/zh-cn/dotnet/api/system.net.mail.mailmessage?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev15.query%3FappId%3DDev15IDEF1%26l%3DZH-CN%26k%3Dk(System.Net.Mail.MailMessage);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.0);k(DevLang-csharp)%26rd%3Dtrue&view=netframework-4.7.2

[C#]SmtpClient发送邮件的更多相关文章

  1. 利用System.Net.Mail 的SmtpClient发送邮件

    原文:利用System.Net.Mail 的SmtpClient发送邮件 几个月前总结过关于Jmail发送邮件,当时用Jmail发送邮件发送速度有点慢(可能对Jmail了解不是很多).现在改为用微软提 ...

  2. SmtpClient发送邮件时附件名称乱码

    在用户环境发现一个现象,使用System.Net.Mail.SmtpClient发送邮件,当附件名包含中文且长度较长时,最终的邮件里附件名会乱掉,写个简单的测试程序: var mail = new M ...

  3. .NET 通过SmtpClient发送邮件 提示 4.7.1 service unavailable try again later 解决办法

    最近用C#的SmtpClient发送电子邮件碰到这个错误: 正在处理错误. 服务器响应为:4.7.1 Service unavailable - try again later 换了其他的SMTP服务 ...

  4. C# 使用 SmtpClient 发送邮件注意项

    最近有邮件发送需求,使用 C#  SmtpClient 对象发送邮件 , 报异常, 如下错误代码: 调整代码顺序后,发送邮件成功! 注意:一定要先设置 EnableSsl和UseDefaultCred ...

  5. C#使用SmtpClient发送邮件

    目的:写一个可发送邮件的DLL. 原理: 例如A使用163邮箱发送邮件给B(qq邮箱).首先A会把邮件通过SMTP(Simple Mail Transfer Protocol)协议传输到163的Smt ...

  6. SmtpClient发送邮件

    使用第三方SMTP服务器来发送邮件.如网易: SmtpClient sc = new SmtpClient("smtp.126.com"); sc.Credentials = ne ...

  7. 记一次SmtpClient发送邮件引发的系列问题

    前提:公司同事离职,我接手同事负责的项目. 事件:某天公司的分析人员,说软件中的邮件发送功能不能使用,总是提示"邮件发送失败". 本地能够正常发送,发布WCF到服务器IIS上,再调 ...

  8. SmtpClient 发送邮件

    利用SmtpClient 代码发送邮件. 简单测试代码: static void Main(string[] args) { MailMessage msg = new MailMessage(); ...

  9. C#使用SmtpClient发送邮件解决授权码配置问题

    授权码,(新版邮箱在开启smtp权限设置时,会生成授权码)如果不做配置,客户端是不能发送邮件的 //指定邮箱账号和密码,需要注意的是,这个密码是你在QQ邮箱设置里开启服务的时候给你的那个授权码 Smt ...

  10. asp.net利用SmtpClient发送邮件

    using System; using System.Data; using System.Web.UI; using System.Data.OracleClient; using DBUtilit ...

随机推荐

  1. 《Java程序设计》 第二周学习总结

    20175334 <Java程序设计>第二周学习总结 教材学习内容总结 了解Java编程风格 认识Java基本数据类型与数组 掌握Java运算符.表达式和语句 教材学习中的问题和解决过程 ...

  2. 廖雪峰Java7处理日期和时间-1概念-1日期和时间

    1.日期 日期是指某一天,如2016-11-20,2018-1-1 2.时间有2种: 不带日期的时间:14:23:54 带日期的时间:2017-1-1 20:21:23,唯一确定某个时刻 3.时区 时 ...

  3. 反序列化和序列化xml使用反射处理节点的属性

    当一个xml中有大量的属性XmlAttribute需要序列化和反序列化,通常需要复制粘贴大量的如下代码,显得很丑陋,而且容易出错: XmlAttribute attr = Doc.CreateAttr ...

  4. 好看的java集合类图

    http://blog.csdn.net/iamzp2008/article/details/38151971?utm_source=tuicool&utm_medium=referral 现 ...

  5. openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主机间能使用nova系统用户经passless登录

    openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主 ...

  6. python数据分析库pandas

    在我看来,对于Numpy以及Matplotlib,Pandas可以帮助创建一个非常牢固的用于数据挖掘与分析的基础.而Scipy(会在接下来的帖子中提及)当然是另一个主要的也十分出色的科学计算库,但是我 ...

  7. Linux权限管理之ACL权限

    注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...

  8. leetcode208

    class TrieNode { public: // Initialize your data structure here. TrieNode() { words=; prefixs=; ;i&l ...

  9. ODPS SQL <for 数据操作语言DML>

    基本操作: 查询: SELECT [ALL | DISTINCT] select_expr, select_expr, ... FROM table_reference [WHERE where_co ...

  10. 数据库设计,表与表的关系,一对一。One-To-One(1)

    如何处理对象间one-to-ont的映射关系:one-to-one: 处理一对一关联的方式有两种: 1.主键关联使用主键关联处理一对一的关系. 主键关联不需要额外的表字段:两行是通过这种一对一关系相关 ...