Anders
Anders

Reputation: 385

Send mail with SendGrid and null values?

Iam using SendGrid in asp.net C#. I have this function to send mail

public async Task SendMail(string AddTo, string Addcc, string Subject, string Message)
{
    var myMessage = new SendGrid.SendGridMessage();
    myMessage.AddTo(AddTo);
    myMessage.AddCc(Addcc);
    myMessage.From = new MailAddress("[email protected]");
    myMessage.Subject = Subject;
    myMessage.Html = Message;

    var credentials = new NetworkCredential(
       ConfigurationManager.AppSettings["mailAccount"],
       ConfigurationManager.AppSettings["mailPassword"]
       );
    //Some validation code
}

I need do add AddCc to some mail but not all. This works fine.

SendMail("[email protected]", "[email protected]", "Subject", "Message");

But not this if don't want to send CC

SendMail("[email protected]", "null", "Subject", "Message");

or this

SendMail("[email protected]", "", "Subject", "Message");

Upvotes: 2

Views: 1639

Answers (1)

M. Schena
M. Schena

Reputation: 2107

Try it by setting a default value and check if AddCc is null:

public async Task SendMail(string AddTo, string Addcc = null, string Subject, string Message)
{
    var myMessage = new SendGrid.SendGridMessage();
    myMessage.AddTo(AddTo);
    if(AddCc != null)
    {
        myMessage.AddCc(Addcc);
    }
    myMessage.From = new MailAddress("[email protected]");
    myMessage.Subject = Subject;
    myMessage.Html = Message;

    var credentials = new NetworkCredential(
       ConfigurationManager.AppSettings["mailAccount"],
       ConfigurationManager.AppSettings["mailPassword"]
       );
    //Some validation code
}

With this you are able to call it like:

SendMail("[email protected]", "[email protected]", "Subject", "Message");

And without cc:

SendMail("[email protected]", "Subject", "Message");

You can even do:

SendMail("[email protected]", null, "Subject", "Message");

Upvotes: 1

Related Questions