Разрешить 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...
}

и т.д. должны делать эту работу.

Другие вопросы по тегам