MailMessage.To.Add() 抛出异常:“在邮件标头中发现无效字符:','。”

问题描述 投票:0回答:6

当我在 sharepoint 项目中使用它时,我收到此错误,而在控制台应用程序中它工作正常

我正在使用

MailMessage
类使用 SMTP 发送电子邮件。 但是,当我尝试将用户添加到“收件人”属性时,我收到 {“在邮件标头中发现无效字符:','。”}异常,我认为这里发生了一些可疑的事情,因为允许“,”分隔多个用户。 添加多个用户

** 多个电子邮件地址必须用逗号字符 (",") 分隔。**

MailMessage mailMessage = new MailMessage();

 mailMessage.To.Add("[email protected],[email protected],");
c# sharepoint-2010
6个回答
49
投票

找到罪魁祸首:这是最后一个电子邮件地址末尾的额外逗号(

mailMessage.To.Add("[email protected],[email protected],");

刚刚删除它,瞧!它的工作。不知道为什么它在控制台应用程序中工作但在共享点中不起作用:(

mailMessage.To.Add("[email protected],[email protected]");

如果这在 SharePoint 中不起作用,则请将每个地址单独添加到 MailMessage 对象上,如下所示;

foreach (var address in StringofEmails.Split(",")) {
MailMessage.To.Add(new MailAddress(address.Trim(), ""));

}


14
投票

即使末尾没有逗号,我也收到错误。原来逗号后面需要留一个空格

我必须将代码从 string.Join(",", emailList) 更改为 string.Join(", ", emailList)

以下对我不起作用。

mailMessage.To.Add("[email protected],[email protected]");

以下对我有用(注意逗号后面有空格)。

mailMessage.To.Add("[email protected], [email protected]");

2
投票

我无法复制这个。上面的代码对我有用。也许尝试每次使用单独的“收件人”来添加它们。

mailMessage.To.Add(x);
mailMessage.To.Add(y);

0
投票

我必须用更漂亮的电子邮件更新一个项目,我发布了 Web 项目并收到了此错误。

我的来自一些调试代码,其中

currentUser = [email protected]   

已添加

MailAddress mailAddressUser = new MailAddress(currentUser + "@mycompany.com");

本质上:

[email protected]@mycompany.com    

因此,不是尾随逗号的问题,而是另一个@


0
投票

就我而言,我忘记过滤掉没有电子邮件的用户,所以我正在形成这样的电子邮件列表:

[email protected]
[email protected]
@domain.com  //PROBLEM HERE
[email protected]

0
投票

你也可以做这样的事情。

var emails = ("[email protected],[email protected],").Split(',');
MailMessage mailMessage = new MailMessage();
foreach (var email from emails)
{
     var emailAddressAttribute = new EmailAddressAttribute();
     if(emailAddressAttribute.IsValid(email))
     {
          MailMessage.To.Add(email);
     }
}
© www.soinside.com 2019 - 2024. All rights reserved.