当我在 sharepoint 项目中使用它时,我收到此错误,而在控制台应用程序中它工作正常
我正在使用
MailMessage
类使用 SMTP 发送电子邮件。
但是,当我尝试将用户添加到“收件人”属性时,我收到 {“在邮件标头中发现无效字符:','。”}异常,我认为这里发生了一些可疑的事情,因为允许“,”分隔多个用户。 添加多个用户
** 多个电子邮件地址必须用逗号字符 (",") 分隔。**
MailMessage mailMessage = new MailMessage();
mailMessage.To.Add("[email protected],[email protected],");
找到罪魁祸首:这是最后一个电子邮件地址末尾的额外逗号(,)
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(), ""));
}
即使末尾没有逗号,我也收到错误。原来逗号后面需要留一个空格
我必须将代码从 string.Join(",", emailList) 更改为 string.Join(", ", emailList)
以下对我不起作用。
mailMessage.To.Add("[email protected],[email protected]");
以下对我有用(注意逗号后面有空格)。
mailMessage.To.Add("[email protected], [email protected]");
我无法复制这个。上面的代码对我有用。也许尝试每次使用单独的“收件人”来添加它们。
mailMessage.To.Add(x);
mailMessage.To.Add(y);
我必须用更漂亮的电子邮件更新一个项目,我发布了 Web 项目并收到了此错误。
我的来自一些调试代码,其中
currentUser = [email protected]
已添加
MailAddress mailAddressUser = new MailAddress(currentUser + "@mycompany.com");
本质上:
[email protected]@mycompany.com
因此,不是尾随逗号的问题,而是另一个@
就我而言,我忘记过滤掉没有电子邮件的用户,所以我正在形成这样的电子邮件列表:
[email protected]
[email protected]
@domain.com //PROBLEM HERE
[email protected]
你也可以做这样的事情。
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);
}
}