C#发送邮件MailMessage 类示例

这个示例展示了如何使用System.Net.Mail命名空间中的类创建并发送带有附件的电子邮件。通过MailMessage类设置邮件的基本信息,如发件人、收件人、主题和正文,并使用Attachment类添加文件附件。然后,SmtpClient类用于通过SMTP服务器发送邮件。邮件的ContentDisposition属性用于设置附件的时间戳信息。

命名空间:
System.Net.Mail
程序集:
System.Net.Mail.dll

//示例
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();
    }

注解
类的实例 MailMessage 用于构造电子邮件,这些电子邮件使用类传输到 SMTP 服务器以便传递 SmtpClient 。
当使用初始化对象时,可以将发件人、收件人、主题和电子邮件正文指定为参数 MailMessage MailMessage 。 还可以使用对象的属性来设置或访问这些参数 MailMessage 。
可以使用类的以下属性设置消息的主邮件头和元素 MailMessage 。
注解
邮件头或部分 properties
Attachments Attachments
密件抄送 (BCC) 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 。

在C语言里,位左对齐右对齐一般在格式化输出时会用到,主要用于控制数据在输出时的位置。以下是相关介绍: ### 整型数据的左对齐右对齐 通过`printf`函数实现整型数据的左对齐右对齐右对齐是默认方式,在格式说明符`%`和`d`之间添加数字来规定输出宽度,若数字位数小于规定宽度,会在左边补空格;左对齐则需在数字前加`-`号,若数字位数小于规定宽度,会在右边补空格。 示例代码如下: ```c #include <stdio.h> int main() { // 右对齐。数字宽度为10,若不足10,在左边补足空格 printf("%10d\n", 1234); // 左对齐。数字宽度为10,若不足10,在右边补足空格 printf("%-10d\n", 1234); return 0; } ``` ### 不同输出长度的情况 当规定的输出宽度和数字实际位数不同时,有不同的处理方式。若规定宽度小于数字实际位数,会完整输出数字;若规定宽度大于数字实际位数,右对齐在左边补空格,左对齐在右边补空格。 示例代码如下: ```c #include <stdio.h> int main() { // -5是左对齐,输出长度为5。5是右对齐,输出长度为5 printf("%-5d %5d\n", 455, 455); printf("%-5d %5d\n", -123, -123); // 规定宽度小于实际位数,完整输出数字 printf("%-5d %5d\n", 987654, 987654); return 0; } ``` ### 其他数据类型的对齐 除整型外,其他数据类型也能实现左对齐右对齐。例如浮点数(`%f`)、字符串(`%s`)等,方法和整型一致。 示例代码如下: ```c #include <stdio.h> int main() { // 右对齐浮点数,宽度为10 printf("%10f\n", 3.14); // 左对齐浮点数,宽度为10 printf("%-10f\n", 3.14); // 右对齐字符串,宽度为10 printf("%10s\n", "hello"); // 左对齐字符串,宽度为10 printf("%-10s\n", "hello"); return 0; } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值