using SendGrid.Helpers.Mail;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello World");
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress("iotplatformnoreply@mmm.com", "3M IoT Platform Team"));
var recipients = new List<EmailAddress>
new EmailAddress('andrew.mkniger@gmail.com'),
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "Mmm.Iot.IdentityGateway.WebService.files.InviteEmail.html";
Func<IDictionary<string, object>, string> template;
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
template = Mustachio.Parser.Parse(reader.ReadToEnd());
msg.SetSubject("Invitation to IoT Platform");
Uri uri = new Uri(forwardedFor ?? "https://" + this.HttpContext.Request.Host.ToString());
dynamic model = new ExpandoObject();
model.link = uri.AbsoluteUri + "#invite=" + inviteToken;
msg.AddContent(MimeType.Html, template(model));
var client = this.sendGridClientFactory.CreateSendGridClient();
var response = await client.SendEmailAsync(msg);