创建和设置电子邮件内容

创建新电子邮件消息

MailMessage 类表示电子邮件消息,允许开发者创建新邮件。可以轻松为新建的邮件设置 From、To、Subject 和正文等基本属性。同样,也可以将邮件保存为不同格式,如 EML、MSG 和 MHTML。

  • 创建 MailMessage 类的实例。
  • 设置邮件消息属性。
  • 以不同格式保存邮件消息。

以下代码片段展示了如何创建具有不同属性的新电子邮件。

指定多个收件人

MailMessage 表示电子邮件消息。MailMessage 类的实例用于构建通过 SmtpClient 类发送到 SMTP 服务器的邮件。本节演示如何指定多个电子邮件地址。可以使用 MailMessage 类指定电子邮件地址。MailMessage 类使用的电子邮件地址包括:

  • To - 收件人地址可以在 “To” 字段中指定。此字段的收件人是主要的邮件受众。可以有多个收件人地址。
  • Cc - CC(抄送)代表“副本”或“礼貌副本”,允许您添加需要查看邮件但不一定需要采取行动的收件人。例如经理或需要了解对话的团队成员。使用 Aspose.Email,您可以在代码中指定 CC 地址。这样,自动邮件或发送到特定地址的所有邮件都可以抄送给相关人员。
  • Bcc - Bcc(密件抄送),允许您向收件人发送邮件而对其他收件人隐藏。CC 在收件人可见的邮件信息中出现,而 Bcc 则不会。它用于隐藏通知。 

要在电子邮件中指定多个邮箱地址,请按以下步骤操作:

  1. 创建 MailMessage 类的实例。
  2. 使用 MailMessage 实例指定 From 以及多个 To、Cc 和 Bcc 地址。
  3. 创建 SmtpClient 类的实例,并使用 Send 方法发送电子邮件。

下面的代码示例展示了如何指定多个 To、CC 和 BCC 地址。

将电子邮件地址更改为友好名称

下面的编程示例演示了如何在邮件中将电子邮件地址更改为友好名称。友好名称是比电子邮件地址更易读的名称,例如将 js346@domain.com 替换为 John Smith。发送邮件时,可以在 MailMessage 类的构造函数中将友好名称与电子邮件地址关联。

要在电子邮件中将电子邮件地址更改为友好名称,请按以下步骤操作:

  • 创建 MailMessage 类的实例,并在 ToFrom 字段中指定带友好名称的电子邮件地址。
  • 通过在 MailMessage 实例中调用 MailMessage 类构造函数,指定带友好名称的 Cc 和 Bcc 电子邮件地址。
  • 创建 SmtpClient 类的实例,并使用 Send 方法发送电子邮件。

以下代码片段展示了如何为电子邮件地址显示名称。

设置邮件正文

MailMessage 类表示电子邮件消息。MailMessage 类的实例用于构建通过 SmtpClient 类发送到 SMTP 服务器的邮件。邮件正文可以使用 MailMessage 类指定。电子邮件可以具有多个正文。MailMessage 类中有两种正文类型:

  • HTML 正文
  • 文本正文

除了 HtmlBody 和 TextBody,Aspose.Email 还有另外两个只读的邮件正文相关属性:

  • IsBodyText:指示正文是否为文本。
  • IsBodyHtml:指示正文是 HTML 还是纯文本。

本文展示了如何定义纯文本或 HTML 正文、设置备用文本以及对电子邮件正文进行编码。

设置 HTML 正文

HtmlBody 用于指定消息正文的 HTML 内容。HtmlBody 必须位于 标签之间。下面的代码片段展示了如何设置 HTML 正文。

设置备用文本

使用 AlternateView 类可以指定同一邮件的不同格式副本。例如,当以 HTML 发送邮件时,您可能还想提供纯文本版本,以防收件人使用的邮件客户端不支持 HTML。该类有两个属性:LinkedResources 和 BaseUri,用于解析邮件内容中的 URL。

  • LinkedResources 是 LinkedResources 对象的集合。渲染时,电子邮件内容中的 URL 首先与 LinkedResources 集合中每个 LinkedResources 对象的 Content Link 中的 URL 匹配并解析。
  • BaseUri 被邮件阅读器用于解析正文中的相对 URL,以及在 LinkedResources 集合中解析相对内容链接 URL。

以下代码片段展示了如何设置备用文本。

MailMessage 功能

该 MailMessage class 表示电子邮件消息的内容。该类的实例 MailMessage class 用于构建要发送到 SMTP 服务器进行投递的电子邮件消息,使用 SmtpClient class。本篇文章展示了如何使用 MailMessage class 实用功能用于控制以下电子邮件特性:

  • 日期和时间 - 通过 MailMessage class Date 属性用于获取或设置电子邮件的日期和时间。
  • 消息优先级 -  MailPriority 类指定发送电子邮件的优先级别,可为低、普通或高。优先级影响传输速度和投递。
  • 消息敏感性 -  MailSensitivity 类指定了五个敏感性级别。
  • 投递通知 - 投递通知让发送者知道他们发送的邮件已送达收件人的收件箱。

默认情况下,Date 是实际发送邮件的日期,Time 是发送时的时间,均由 Microsoft Outlook 显示。然而,真实的邮件投递时间由 SMTP 服务器在邮件头中添加。例如,下面是一段常见的邮件头,其中 Date 设置了 Date 字段的值。

下面的代码片段演示了如何使用上述每个功能。

请求阅读回执

下面的编程示例展示了如何请求阅读回执。 MailMessage 类 DeliveryNotificationOptions 枚举属性描述电子邮件的投递通知选项。要在发送电子邮件后请求阅读回执,请按照以下步骤操作:

  1. 创建该类的实例 MailMessage 类。
  2. 在中指定电子邮件的发件人、收件人和 HTML 正文 MailMessage 实例。
  3. 指定 DeliveryNotificationOptions 在其他 MailMessage 实例。
  4. 创建该类的实例 SmtpClient 类并使用 Send 方法发送电子邮件。

读取回执请求可能并不总是被满足,原因如下:

  • 邮件客户端可能未实现此功能。
  • 最终用户可能已关闭此功能。
  • 最终用户可能选择不发送回执。

以下代码片段展示了如何请求阅读回执。

设置电子邮件标题

电子邮件头部遵循互联网标准,RFC 定义了包含在互联网电子邮件中的头部字段。可以使用 MailMessage 类指定电子邮件头部。常见的头部类型在 HeaderType 类中定义。它是一个密封类,像普通枚举一样工作。

通常,电子邮件标题包含以下字段:

  • To:收件人地址可以在 To 字段中指定。To 字段的收件人是消息的主要受众。可以有多个收件人地址。
  • From:此字段显示消息发送者的电子邮件地址。
  • Cc:允许用户发送“抄送”或“礼貌抄送”。即收件人不需要回复或采取行动。通常用于通知监督人员。
  • Bcc:盲密送,指将消息发送给多个收件人,但收件人收到的内容中不包含完整的收件人列表,用于隐藏通知。
  • ReplyTo:此标题字段用于指示发件人希望回复发送到何处。
  • Subject:标题、主题。常用于作为回复或评论其他消息的线程指示。
  • Date:此标题指定日期(和时间)。通常是消息撰写并发送的日期。
  • XMailer:关于发件人客户端软件的信息。例如:X-Mailer: Aspose.Email。XMailer 被邮件客户端使用。不同的邮件客户端会有不同的 XMailer 值。MS Outlook 的 XMailer 值是 Microsoft Office Outlook, Build 11.0.5510。邮件接收者或阅读器会忽略它。

通常,电子邮件标题看起来类似于以下内容:


 Reply-To: reply@reply.com

From: sender@sender.com

To: guangzhou@guangzhoo.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

要自定义电子邮件标题,请按照以下步骤操作:

  • 创建该类的实例 MailMessage 类。
  • 使用实例指定 To、From、CC、Bcc、ReplyTo、Subject、Date 与 XMailer MailMessage.
  • 创建该类的实例 MimeHeader 类并指定秘密标题。
  • 将秘密头部添加到 MailMessage 实例。

以下代码片段展示了如何设置电子邮件头部。

以上代码片段生成如下格式的电子邮件头。您可以通过在 Microsoft Outlook 中打开生成的文件 "MsgHeaders.msg" 并查看属性来观察。


 Reply-To: reply@reply.com

From: sender@sender.com

To: receiver1@receiver.com

CC: receiver2@receiver.com

BCC: receiver3@receiver.com

Subject: test mail

Date: 6 Mar 2006 8:2:2 +0800

X-Mailer: Aspose.Email

secret-header: mystery

在特定位置插入标题

该 添加 方法的 HeadersCollection 类将在集合末尾插入头部。然而,有时需要在特定位置插入头部。在这种情况下, 添加 方法无效。要实现此功能,请使用 Insert 方法的 HeadersCollection如果集合中包含同名的头部,则该头部会插入到其他同名头部之前。下面的代码片段展示了如何在特定位置插入头部。

向电子邮件添加自定义标题

下面的编程示例演示了如何在电子邮件中指定自定义头部。可以使用以下方式指定电子邮件头部: MailMessage 类。要在电子邮件中指定自定义头部,请按以下步骤操作:

  1. 创建该类的实例 MailMessage 类。
  2. 使用 MailMessage 实例指定 to、from 和 subject 的值。
  3. 将秘密头部添加到 MailMessage 实例。
  4. 创建 SmtpClient 类的实例,并使用 Send 方法发送电子邮件。

以下代码片段展示了如何向电子邮件添加自定义标题。