public static async void EnviarMailRegistro(string nombreFranquicia, string from, string para, string nombrePara, string confirmKey, string nombre, string password) { MandrillApi api = new MandrillApi("aEBsx-ctFG9KeItcRm5aCQ"); UserInfo info = await api.UserInfo(); Console.WriteLine(info.Username); var email = new Mandrill.Models.EmailMessage(); var correos = new List<EmailAddress>(); correos.Add(new EmailAddress(para, nombrePara)); email.To = correos; email.Subject = String.Format("Confirmación de registro a {0}", nombreFranquicia); email.FromEmail = from; email.FromName = nombreFranquicia; email.TrackOpens = true; email.Html = $"Hola {nombrePara}, url: {"http://localhost:49608/Usuario/ConfirmacionCorreo?confirmKey=" + confirmKey} Adicionalmente, esta es tu password para cambiar la contraseña: { password }"; await api.SendMessage(new SendMessageRequest(email)); }
public async Task<ActionResult> MailTest() { var mandrill = new Mandrill.MandrillApi(this.mandrillApiKey); var email = new EmailMessage { FromEmail = this.emailSendingAddress, To = new List<EmailAddress> { new EmailAddress(this.errorEmailRecipient) }, Subject = "VCard import finished", Text = "sdfsdf", }; await mandrill.SendMessage(new SendMessageRequest(email)); return new HttpStatusCodeResult(200); }
internal static EmailMessage AddAttachments(EmailMessage message, string[] attachments) { if (attachments != null) { var emailAttachments = new List<EmailAttachment>(); foreach (string file in attachments) { if (!String.IsNullOrWhiteSpace(file)) { if (File.Exists(file)) { var content = File.ReadAllBytes(file); emailAttachments.Add(new EmailAttachment() { Content = Convert.ToBase64String(content), Name = Path.GetFileName(file) }); } } } } return message; }
public SendMessageTemplateRequest(EmailMessage message, string templateName, IEnumerable<TemplateContent> templateContents) { Message = message; TemplateName = templateName; TemplateContents = templateContents; }
public SendMessageRequest(EmailMessage message) { Message = message; }
/// <summary> /// /// </summary> /// <param name="message">The other information on the message to send - same as /messages/send, but without the html content.</param> /// <param name="templateName">The immutable name or slug of a template that exists in the user's account. For backwards-compatibility, the template name may also be used but the immutable slug is preferred.</param> public SendMessageTemplateRequest(EmailMessage message, string templateName) { Message = message; TemplateName = templateName; TemplateContents = new TemplateContent[] {}; }
public async Task<ActionResult> MailWebhook() { // Initialize a mandrill client for sending emails var mandrill = new Mandrill.MandrillApi(this.mandrillApiKey); string sender = null; try { // Get the JSON payload string validJson = HttpContext.Request.Form["mandrill_events"].Replace("mandrill_events=", string.Empty); if (string.IsNullOrWhiteSpace(validJson)) { return new HttpStatusCodeResult(400); } var webhookEvents = JsonConvert.DeserializeObject<List<WebHookEvent>>(validJson); if (webhookEvents == null) { return new HttpStatusCodeResult(400); } var results = new List<string>(); foreach (var webhookEvent in webhookEvents) { sender = webhookEvent.Msg.FromEmail; var attachments = webhookEvent.Msg.Attachments; // Verify the security by checking authorized senders if (webhookEvent.Msg.Spf.Result != "pass" && webhookEvent.Msg.Dkim.Valid != true) { throw new Exception("Sender not authorized: SPF / DKIM Check failed."); } // Create an instance of the CRM service that acts in the name of the sender of the email using (var service = new CrmVcardUpdateService(sender)) { // Loop through the attachments foreach (var attachment in attachments) { // Get the VCards var filename = this.DecodeBase64Names(attachment.Key); if ((attachment.Value.Type != "text/vcard" && attachment.Value.Type != "text/x-vcard") || !filename.EndsWith(".vcf")) { results.Add(string.Format("{0}: not imported (mime-type: {1})", filename, attachment.Value.Type)); continue; } var bytes = attachment.Value.Base64 ? Convert.FromBase64String(attachment.Value.Content) : Encoding.UTF8.GetBytes(attachment.Value.Content); var memoryStream = new MemoryStream(bytes); var vcardReader = new vCardStandardReader(); using (var streamreader = new StreamReader(memoryStream)) { var vcard = vcardReader.Read(streamreader); // Import the VCards into the CRM var result = service.UpdateContactWithVcard(vcard, filename); results.Add(result); } } } } // Sends a mail with the results var email = new EmailMessage { FromEmail = this.emailSendingAddress, To = new List<EmailAddress> { new EmailAddress(sender ?? this.errorEmailRecipient) }, Subject = "VCard import finished", Text = "Results:\t\n\t\n" + string.Join("\t\n", results), }; await mandrill.SendMessage(new SendMessageRequest(email)); return this.View((object)validJson); } catch (Exception ex) { // Send a mail with the error var email = new EmailMessage { FromEmail = this.emailSendingAddress, To = new List<EmailAddress> { new EmailAddress(sender ?? this.errorEmailRecipient) }, Subject = "Error in VCard Import", Text = JsonConvert.SerializeObject(ex, Formatting.Indented) }; mandrill.SendMessage(new SendMessageRequest(email)); throw; } }