我正在使用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;
}
答案 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...
}
等。应该做的。