Разрешить null для To, Cc, Bcc mailmessage (system.net.mail.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 ответ
Решение
Как Ганс предположил в своем комментарии, что-то вроде
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...
}
и т.д. должны делать эту работу.