允许邮件的收件人、抄送、密件抄送为空(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;
}
正如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...
}
等等。应该做这项工作。