10

我正在尝试使用System.Net.Mail.MailMessageC# 中的类来创建一封电子邮件,该电子邮件全部通过BCC. 我不想包含TO地址,但似乎必须包含地址,因为如果我在构造函数中使用空字符串作为TO地址,则会出现异常。MailMessage错误指出:

ArgumentException
The parameter 'addresses' cannot be an empty string.
Parameter name: addresses

当然可以仅使用发送电子邮件,BCC因为这不是 SMTP 的限制。

有没有解决的办法?

4

8 回答 8

11

对不希望人们一直回复的内部邮件爆炸做同样的事情。

将其发送给您自己(或虚拟帐户),然后添加您的密件抄送列表。

于 2008-11-19T15:34:25.800 回答
11

我认为如果您注释掉整emailMessage.To.Add(sendTo);行,它将发送To字段为空的电子邮件。

于 2009-06-25T19:26:16.087 回答
2

您必须包括一个收件人地址。只需将其发送到您不介意接收邮件的“垃圾”电子邮件地址即可。

于 2008-11-19T15:34:25.707 回答
2

它甚至不需要是一个真实的电子邮件地址,我通常使用Mailer@CompanyName.comforTONoReply@CompanyNamefor FROM

于 2008-11-19T15:46:00.363 回答
1

只是不要在 To-property 上调用 Add-method。

于 2009-06-25T19:32:23.827 回答
0

必须有一个地址。自从 80 年代最初的 sendmail 和我所知道的所有 SMTP 邮件程序的实现以来,就一直采用这种方式,具有相同的要求。您可以只使用一个虚拟地址。

于 2014-07-17T18:06:05.787 回答
0

您可以使用临时假地址,然后在以下情况下将其删除:

MailMessage msg = new MailMessage(from, "fake@example.com");
msg.To.Clear();
foreach (string email in bcc.Split(';').Select(x => x.Trim()).Where(x => x != ""))
{
     msg.Bcc.Add(email);
}
于 2017-06-08T16:21:12.177 回答
0

我认为您正在尝试执行以下操作:

var msg = new MailMessage("no-reply@notreal.com", "");

这就是您看到错误消息的原因。

相反,尝试这样的事情:

MailMessage msg = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.notreal.com");
msg.From = new MailAddress("no-reply@notreal.com");
//msg.To.Add("target@notreal.com"); <--not needed
msg.Bcc.Add("BCCtarget@notreal.com");
于 2019-03-19T23:02:14.510 回答