Following these posts:
- Create a secure ASP.NET MVC 5 web app with log in, email confirmation and password reset
- How to Send Email Using SendGrid with Azure
Here is the SendGrid code:
-- read more and comment ...
private static async Task SendGridSendAsync(string to, string from, string subject, string body)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(to);
myMessage.From = new System.Net.Mail.MailAddress(
"my.service.email.address@gmail.com", "my.service");
myMessage.Subject = subject;
myMessage.Text = body;
myMessage.Html = body;
var credentials = new NetworkCredential(
"sendGridAccount", "sendGridPassword"
);
// Create a Web transport for sending email.
var transportWeb = new SendGrid.Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
Here is the GMail code:
private static async Task GmailSendAsync(string to, string from, string subject, string body)
{
var sentFrom = (string.IsNullOrEmpty(from) ? "my.service.email.address@gmail.com" : "my.service");
// Configure the client:
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("smtp.gmail.com");
client.Port = 587;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
// Creatte the credentials:
System.Net.NetworkCredential credentials = new NetworkCredential(
"gmailAccount", "gmailPassword"
);
client.EnableSsl = true;
client.Credentials = credentials;
// Create the message:
var mail = new System.Net.Mail.MailMessage(sentFrom, to);
mail.Subject = subject;
mail.Body = body;
await client.SendMailAsync(mail);
}