我正在使用 System.Net.Mail.MailMessage 捕获并通过与电子邮件相关的信息传递它。
我收到“值不能为空”异常。
我的要求是“收件人”、“抄送”、“密件抄送”中的任何一个都可以为空,但至少其中一个字段应该包含电子邮件(“收件人”、“抄送”或“密件抄送”)。
这是我的代码:
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;
}
最佳答案
正如汉斯在他的评论中推断的那样,类似于
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...
}
等等。应该完成这项工作。
关于c# - 邮件消息的“收件人”、“抄送”、“密件抄送”允许为 null (system.net.mail.mailmessage),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974763/