允许邮件的收件人、抄送、密件抄送为空(system.net.mailmessage)

本文关键字:system net mailmessage 许邮件 收件人 抄送 密件 | 更新日期: 2023-09-27 17:57:36

我使用System.Net.Mail.MailMessage捕获并传递与电子邮件相关的信息。

我得到"Value Cannot be null"异常。

我的要求是"收件人"、"抄送"answers"密件抄送"中的任何一个都可以为空,但其中至少有一个字段应该有电子邮件("收件人"或"抄送"或"密件传")。

这是我的代码:

public object InsertMailSendQueue([FromBody] EmailReport mailMsg ) 
        {            
            mailMessage.To.Add(mailMsg.To);
            mailMessage.CC.Add(mailMsg.Cc);
            mailMessage.Bcc.Add(mailMsg.Bcc);
            mailMessage.From = new System.Net.Mail.MailAddress(mailMsg.From);
            mailMessage.Subject = mailMsg.Subject;
            mailMessage.Body = mailMsg.Body;
            var confirmation = EmailService.InsertMailSendQueue(mailMsg.AgentId, mailMsg.Notes, null, mailMessage, true);
            return confirmation;
        }    

允许邮件的收件人、抄送、密件抄送为空(system.net.mailmessage)

正如Hans在评论中推断的那样,类似

bool send = false;
if (!String.IsNullOrEmpty(mailMsg.To))
{
     mailMessage.CC.Add(mailMsg.To);
     send = true;
}
if (!String.IsNullOrEmpty(mailMsg.Cc))
{
     mailMessage.CC.Add(mailMsg.Cc);
     send = true;
}
if (!String.IsNullOrEmpty(mailMsg.Bcc))
{
     mailMessage.CC.Add(mailMsg.Bcc);
     send = true;
}
if (!send)
{
     // what to do if none are set...
}

等等。应该做这项工作。