编辑:这个问题是毫无意义的,除了作为红鲱鱼的练习。这个问题原来是我的白痴(没有人收到电子邮件,因为没有指定主机并且在 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
地址集合中,但我正在做的是替换它。
我想我刚刚意识到我的错误——要将一项添加到集合中,请使用 .To.Add(new MailAddress("person@domain.com"))
如果您只使用 a string
,它将替换其列表中的所有内容。
编辑:其他人已经测试并且没有看到这种行为。这要么是我特定版本的框架中的错误,要么更可能是我的白痴策略。
啊。我认为这是一个相当大的陷阱!既然我回答了自己的问题,但我认为这在 stackoverflow 档案中很有价值,我仍然会问它。也许有人甚至对您可能陷入的其他陷阱有所了解。