2

向 a 添加多个收件人时,MailMessage.BCC没有AddRange(). 仅有的MailMessage.Bcc.Add();

可以通过扩展方法更改此功能吗?在这一点上我有点迷茫,任何指针都会非常感激。

4

2 回答 2

5

MailMessage.Bcc是类型MailAddressCollection。这MailAddressCollection实现了ICollection<MailAddress>. 所以你可以做的是编写一个通用的AddRange扩展方法,它适用于任何ICollection<T>.

这将如下所示:

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 });
于 2013-02-25T13:15:58.647 回答
5

假设您正在谈论 System.Net.Mail.MailMessage 类,您需要的已经由 MailAddressCollection.Add 方法提供(Bcc 属于 MailAddressCollection 类型)。

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

检查这个:

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

于 2013-02-25T13:17:36.000 回答