MailMessage密件抄送AddRange的扩展方法

本文关键字:扩展 方法 AddRange 密件 MailMessage | 更新日期: 2023-09-27 18:01:04

MailMessage.BCC添加多个收件人时,AddRange()没有选项。仅MailMessage.Bcc.Add();

可以通过扩展方法更改此功能吗?在这一点上我有点不知所措,任何指点都将不胜感激。

MailMessage密件抄送AddRange的扩展方法

假设您谈论的是System.Net.Mail.MailMessage类,您所需要的内容已经由MailAddressCollection.Add方法提供(密件抄送属于MailAddressCollection类型(。

只需使用逗号(","(分隔的多个电子邮件地址调用Add方法。

检查此项:

http://msdn.microsoft.com/en-us/library/ms144695(v=vs.100(.aspx

MailMessage.Bcc属于MailAddressCollection类型。这个MailAddressCollection实现了ICollection<MailAddress>。因此,您可以编写一个适用于任何ICollection<T>的通用AddRange扩展方法。

如下所示:

public static class CollectionExtensions
{
    public static void AddRange<T>(this ICollection<T> target, IEnumerable<T> items)
    {
        foreach(var item in items)
        {
            target.Add(item);
        }   
    }
}

然后你可以这样使用:

var address1 = new MailAddress("abc@xyz.com");
var address2 = new MailAddress("wxy@hij.com");
message.Bcc.AddRange(new[] { address1, address2 });