zoukankan      html  css  js  c++  java
  • [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类由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

  • 相关阅读:
    vue
    手写Promise
    Promise应用
    Promise
    JS_URL模块
    模板字符串应用
    JS-OOP
    jQuery——过时,但是经典,关注核心点即可。
    MySql补充
    offset系列
  • 原文地址:https://www.cnblogs.com/masonlu/p/9817715.html
Copyright © 2011-2022 走看看