asp.net – .Net System.Mail.Message添加多个“To”地址

前端之家收集整理的这篇文章主要介绍了asp.net – .Net System.Mail.Message添加多个“To”地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:这个问题是无意义的,除了作为一个练习在红色herrings。这个问题结果是我的愚蠢的组合(NO ONE是通过电子邮件发送,因为主机没有被指定,在web.config中不正确),用户告诉我,他们有时得到电子邮件,有时没有,当在现实中,他们从来没有得到电子邮件

因此,我不是采取适当的步骤在受控的环境中重现问题,而是依赖于用户信息和“它在我的机器上工作”的心态。
好的提醒我自己和任何人在那里有时是一个白痴。

我只是碰到我认为不一致的东西,想看看我做错了什么,如果我是个白痴,或者…

MailMessage msg = new MailMessage();
msg.To.Add("person1@domain.com");
msg.To.Add("person2@domain.com");
msg.To.Add("person3@domain.com");
msg.To.Add("person4@domain.com");

真的只发送这封电子邮件给1个人,最后一个。

添加多个,我必须这样做:

msg.To.Add("person1@domain.com,person2@domain.com,person3@domain.com,person4@domain.com");

我不明白。我以为我要添加多个人到地址集合,但我正在做的是替换它。

我想我只是意识到我的错误添加一个项目到集合,使用
.To.Add(new MailAddress(“person@domain.com”))

如果你只使用一个字符串,它会取代它在它的列表中的一切。
编辑:其他人已经测试,没有看到这种行为。这是我的特定版本的框架中的错误,或者更可能是我的白痴操作。

啊。我认为这是一个相当大的骗子!因为我回答了我自己的问题,但我认为这是有价值的在stackoverflow存档,我仍然会问。也许有人甚至有一个想法,你可以陷入其他陷阱。

解决方法

我无法复制您的错误
var message = new MailMessage();

message.To.Add("user@example.com");
message.To.Add("user2@example.com");

message.From = new MailAddress("test@example.com");
message.Subject = "Test";
message.Body = "Test";

var client = new SmtpClient("localhost",25);
client.Send(message);

倾销的内容To:MailAddressCollection

MailAddressCollection (2 items)
DisplayName User Host Address

user example.com user@example.com
user2 example.com user2@example.com

而由此产生的电子邮件被抓住smtp4dev

Received: from mycomputername (mycomputername [127.0.0.1])
     by localhost (Eric Daugherty's C# Email Server)
     3/8/2010 12:50:28 PM
MIME-Version: 1.0
From: test@example.com
To: user@example.com,user2@example.com
Date: 8 Mar 2010 12:50:28 -0800
Subject: Test
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Test

您确定您的代码或SMTP服务器没有发生其他问题吗?

猜你在找的asp.Net相关文章