MailMessage 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示可以使用 SmtpClient 类发送的电子邮件。
public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
interface IDisposable
Public Class MailMessage
Implements IDisposable
- 继承
-
MailMessage
- 实现
示例
下面的代码示例演示如何创建和发送包含附件的电子邮件。
static void CreateMessageWithAttachment( String^ server )
{
// Specify the file to be attached and sent.
// This example assumes that a file named Data.xls exists in the
// current working directory.
String^ file = L"data.xls";
// Create a message and set up the recipients.
MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"Quarterly data report.",L"See the attached spreadsheet." );
// Create the file attachment for this email message.
Attachment^ data = gcnew Attachment(file, MediaTypeNames::Application::Octet);
// Add time stamp information for the file.
ContentDisposition^ disposition = data->ContentDisposition;
disposition->CreationDate = System::IO::File::GetCreationTime( file );
disposition->ModificationDate = System::IO::File::GetLastWriteTime( file );
disposition->ReadDate = System::IO::File::GetLastAccessTime( file );
// Add the file attachment to this email message.
message->Attachments->Add( data );
//Send the message.
SmtpClient^ client = gcnew SmtpClient( server );
// Add credentials if the SMTP server requires them.
client->Credentials = CredentialCache::DefaultNetworkCredentials;
client->Send( message );
// Display the values in the ContentDisposition for the attachment.
ContentDisposition^ cd = data->ContentDisposition;
Console::WriteLine( L"Content disposition" );
Console::WriteLine( cd );
Console::WriteLine( L"File {0}", cd->FileName );
Console::WriteLine( L"Size {0}", cd->Size );
Console::WriteLine( L"Creation {0}", cd->CreationDate );
Console::WriteLine( L"Modification {0}", cd->ModificationDate );
Console::WriteLine( L"Read {0}", cd->ReadDate );
Console::WriteLine( L"Inline {0}", cd->Inline );
Console::WriteLine( L"Parameters: {0}", cd->Parameters->Count );
IEnumerator^ myEnum1 = cd->Parameters->GetEnumerator();
while ( myEnum1->MoveNext() )
{
DictionaryEntry^ d = safe_cast<DictionaryEntry^>(myEnum1->Current);
Console::WriteLine( L"{0} = {1}", d->Key, d->Value );
}
data->~Attachment();
client->~SmtpClient();
}
public static void CreateMessageWithAttachment(string server)
{
// Specify the file to be attached and sent.
// This example assumes that a file named Data.xls exists in the
// current working directory.
string file = "data.xls";
// Create a message and set up the recipients.
MailMessage message = new MailMessage(
"jane@contoso.com",
"ben@contoso.com",
"Quarterly data report.",
"See the attached spreadsheet.");
// Create the file attachment for this email message.
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
// Add the file attachment to this email message.
message.Attachments.Add(data);
//Send the message.
SmtpClient client = new SmtpClient(server);
// Add credentials if the SMTP server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials;
try
{
client.Send(message);
}
catch (Exception ex)
{
Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
ex.ToString());
}
// Display the values in the ContentDisposition for the attachment.
ContentDisposition cd = data.ContentDisposition;
Console.WriteLine("Content disposition");
Console.WriteLine(cd.ToString());
Console.WriteLine("File {0}", cd.FileName);
Console.WriteLine("Size {0}", cd.Size);
Console.WriteLine("Creation {0}", cd.CreationDate);
Console.WriteLine("Modification {0}", cd.ModificationDate);
Console.WriteLine("Read {0}", cd.ReadDate);
Console.WriteLine("Inline {0}", cd.Inline);
Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
foreach (DictionaryEntry d in cd.Parameters)
{
Console.WriteLine("{0} = {1}", d.Key, d.Value);
}
data.Dispose();
}
Public Shared Sub CreateMessageWithAttachment(ByVal server As String)
' Specify the file to be attached And sent.
' This example assumes that a file named Data.xls exists in the
' current working directory.
Dim file As String = "data.xls"
' Create a message and set up the recipients.
Dim message As MailMessage = New MailMessage(
"jane@contoso.com",
"ben@contoso.com",
"Quarterly data report.",
"See the attached spreadsheet.")
' Create the file attachment for this email message.
Dim data As Attachment = New Attachment(file, MediaTypeNames.Application.Octet)
' Add time stamp information for the file.
Dim disposition As ContentDisposition = data.ContentDisposition
disposition.CreationDate = System.IO.File.GetCreationTime(file)
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file)
disposition.ReadDate = System.IO.File.GetLastAccessTime(file)
' Add the file attachment to this email message.
message.Attachments.Add(data)
' Send the message
Dim client As SmtpClient = New SmtpClient(server)
' Add credentials if the SMTP server requires them.
client.Credentials = CredentialCache.DefaultNetworkCredentials
Try
client.Send(message)
Catch ex As Exception
Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", ex.ToString())
End Try
' Display the values in the ContentDisposition for the attachment.
Dim cd As ContentDisposition = data.ContentDisposition
Console.WriteLine("Content disposition")
Console.WriteLine(cd.ToString())
Console.WriteLine("File {0}", cd.FileName)
Console.WriteLine("Size {0}", cd.Size)
Console.WriteLine("Creation {0}", cd.CreationDate)
Console.WriteLine("Modification {0}", cd.ModificationDate)
Console.WriteLine("Read {0}", cd.ReadDate)
Console.WriteLine("Inline {0}", cd.Inline)
Console.WriteLine("Parameters: {0}", cd.Parameters.Count)
For Each d As DictionaryEntry In cd.Parameters
Console.WriteLine("{0} = {1}", d.Key, d.Value)
Next
data.Dispose()
End Sub
注解
类的 MailMessage 实例用于构造传输到 SMTP 服务器以使用 SmtpClient 类传递的电子邮件。
使用 初始化 MailMessage 对象时MailMessage,可将电子邮件的发件人、收件人、主题和正文指定为参数。 还可以使用 对象的属性 MailMessage 设置或访问这些参数。
可以使用 类的以下属性 MailMessage 设置邮件的主邮件头和元素。
邮件头或部分 | properties |
---|---|
Attachments | Attachments |
密件抄送 (密件抄送) | Bcc |
抄送 (CC) | CC |
Content-Type | BodyEncoding |
自定义标头的编码 | HeadersEncoding |
邮件正文 | Body |
优先级 | Priority |
Recipient | To |
答复 | ReplyToList |
发送方 | From |
主题 | Subject |
类 MailMessage 还允许应用程序使用 Headers 属性访问消息的标头集合。 虽然此集合是只读的, (无法) 设置新集合,但可以在此集合中添加或删除自定义标头。 发送实例时, MailMessage 将包含添加的任何自定义标头。 在发送消息之前,只有专门添加到 属性中的此集合的 Headers 标头才会包含在集合中。 MailMessage发送实例后,Headers属性还将包含标头,这些标头使用 类的关联属性MailMessage设置,或者在使用 初始化MailMessage对象时MailMessage传递的参数。
如果某些邮件头格式不正确,可能会导致电子邮件损坏。 因此,标头集合中可以使用 类上的 MailMessage 属性设置的任何邮件头都应仅使用 MailMessage 类属性或作为初始化 MailMessage 对象时MailMessage传递的参数进行设置。 不应使用 Headers 属性添加以下邮件头列表,在发送邮件时,将使用 属性为这些标头 Headers 设置的任何值将被丢弃或覆盖:
密件抄送
抄送
Content-ID
Content-Location
Content-Transfer-Encoding
Content-Type
Date
从
重要性
MIME-Version
优先级
答复
发送方
功能
X 优先级
如果应用程序未使用 Headers 属性指定 X-Sender 标头,则 MailMessage 类将在发送消息时创建一个标头。
AlternateViews使用 属性可以指定不同格式的电子邮件副本。 例如,如果以 HTML 形式发送邮件,则可能还需要提供纯文本版本,以防某些收件人使用无法显示 HTML 内容的电子邮件阅读器。 有关演示如何使用备用视图创建消息的示例,请参阅 AlternateViews。
Attachments使用 属性向电子邮件添加附件。 有关演示如何创建包含附件的邮件的示例,请参阅 Attachments。 在 MailMessage 上调用 Dispose 还会在每个引用的附件上调用 Dispose。
组合电子邮件后,可以使用 或 SendAsync 方法发送它Send。
构造函数
MailMessage() |
初始化 MailMessage 类的空实例。 |
MailMessage(MailAddress, MailAddress) |
使用指定的 MailAddress 类对象初始化 MailMessage 类的新实例。 |
MailMessage(String, String) |
使用指定的 String 类对象初始化 MailMessage 类的新实例。 |
MailMessage(String, String, String, String) |
初始化 MailMessage 类的新实例。 |
属性
AlternateViews |
获取用于存储邮件正文的替代形式的附件集合。 |
Attachments |
获取用于存储附加到此电子邮件的数据的附件集合。 |
Bcc |
获取包含此电子邮件密件抄送 (BCC) 收件人的地址集合。 |
Body |
获取或设置邮件正文。 |
BodyEncoding |
获取或设置用于邮件正文的编码。 |
BodyTransferEncoding |
获取或设置用于邮件正文的传输编码。 |
CC |
获取包含此电子邮件抄送 (CC) 收件人的地址集合。 |
DeliveryNotificationOptions |
获取或设置此电子邮件的发送通知。 |
From |
获取或设置此电子邮件的发件人地址。 |
Headers |
获取与此电子邮件一起传输的电子邮件标头。 |
HeadersEncoding |
获取或设置此电子邮件的用户自定义标头使用的编码。 |
IsBodyHtml |
获取或设置一个值,指示邮件正文是否为 HTML 格式。 |
Priority |
获取或设置此电子邮件的优先级。 |
ReplyTo |
已过时.
已过时.
已过时.
获取或设置邮件的回复地址。 |
ReplyToList |
获取邮件的回复地址的列表。 |
Sender |
获取或设置此电子邮件的发件人地址。 |
Subject |
获取或设置此电子邮件的主题行。 |
SubjectEncoding |
获取或设置用于此电子邮件主题内容的编码。 |
To |
获取包含此电子邮件收件人的地址集合。 |
方法
Dispose() |
释放由 MailMessage 使用的所有资源。 |
Dispose(Boolean) |
释放由 MailMessage 占用的非托管资源,还可以另外再释放托管资源。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |