WebMail.Send有什么问题,涉及到多个收件人?

Zac*_*Zac 6 .net c# email webmail

在讨论之前我们已经在StackOverflow上看到了一些类似的问题,System.Web.Helpers.Webmail.Send但是我没有看到正在发生的事情的正确解释.

关于to:参数,文档说:

收件人或收件人的电子邮件地址.使用分号(;)分隔多个收件人.

我已经看到答案说"使用逗号,因为文档是错误的",或"使用分号",或"也许这是一个环境问题".

代码

WebMail.Send(
    to: "joe.bloggs@mail.com,jane.bloggs@mail.com",
    from: "no-reply@company.com",
    subject: "Some Automated Email",
    body: "<strong>Lorem Ipsum</strong>",
    isBodyHtml: true
);
Run Code Online (Sandbox Code Playgroud)

我尝试过几个场景:

joe.bloggs@mail.com;jane.bloggs@mail.com

没有收到电子邮件: An invalid character was found in the mail header: ';'.

joe.bloggs@mail.com; jane.bloggs@mail.com

只有第一个收件人收到电子邮件

joe.bloggs@mail.com,jane.bloggs@mail.com

两人都收到了电子邮件

joe.bloggs@mail.com, jane.bloggs@mail.com

两人都收到了电子邮件

joe.bloggs@mail.com, non-existant@mail.com

首先收到了电子邮件,但未被捕获的例外情况: Mailbox unavailable. The server response was: 5.7.1 Unable to relay

non-existant@mail.com, joe.bloggs@mail.com

没有收到电子邮件: An invalid character was found in the mail header: ','.

任何人都可以对此有所了解吗?我实际上在不同的服务器上有更多的眩晕行为; 我正在使用Exchange进行上述测试,但实际上在hMailServer上遇到了不同的行为,joe.bloggs@mail.com,jane.bloggs@mail.com导致静默失败,没有服务器错误,hMailServer日志中没有外发邮件.在使用hMailServer的系统上,我只使用一个地址获得了成功.

小智 2

这可能与您连接的继电器的种类以及它们接受的方法的种类有关。分隔符不仅对每个特定的邮件服务器很重要,而且电子邮件地址也很重要(因为不同的中继将配置为接受某些电子邮件,并且会针对错误的电子邮件抛出各种错误代码,这将依次引发各种异常)。

System.Net.Mail 命名空间有一个 MailMessage 对象,其中包含“收件人”、“抄送”和“密件抄送”的 MailAddressCollection 对象,您只需为每个收件人调用 Add() 即可。

我有一个使用它发送邮件(没有中继)的库(所有内容都发送到密件抄送),您可以在那里查看代码。如果您碰巧使用该库,请确保您的 IP 地址保持良好的声誉,并确保您的 DNS 记录的设置方式与您作为中继时的设置方式相同(PTR 和 A 记录所有设置)。