允许mailmessage的To,Cc,Bcc为null(system.net.mail.mailmessage)

时间:2014-04-09 21:57:57

标签: c# smtp mailmessage

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

我得到"价值不能为空"例外。

我的要求是To,Cc,Bcc中的任何一个都可以为空,但这些字段中至少有一个应该有一封电子邮件(To或Cc或Bcc)。

这是我的代码:

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;

        }    

1 个答案:

答案 0 :(得分:2)

汉斯在评论中推断出类似

的内容
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...
}

等。应该做的。

相关问题