예제 #1
0
        private bool SendCampaign(MailjetClient client, long idCampaign)
        {
            try
            {
                MailjetRequest request = new MailjetRequest
                {
                    Resource   = CampaigndraftSend.Resource,
                    ResourceId = ResourceId.Numeric(idCampaign)
                };


                MailjetResponse response = Task.Run(() => client.PostAsync(request)).Result;
                if (response.IsSuccessStatusCode)
                {
                    return(true);
                }
                else
                {
                    telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
                }
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }

            return(false);
        }
예제 #2
0
        public async Task SendEmailAsync(string email, string subject, string htmlMessage)
        {
            MailjetClient client =
                new MailjetClient(_mailJetSettings.PublicKey, _mailJetSettings.PrivateKey);
            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource,
            };

            // construct your email with builder
            var malJetEmail = new TransactionalEmailBuilder()
                              .WithFrom(new SendContact(_mailJetSettings.Email))
                              .WithSubject(subject)
                              .WithHtmlPart(htmlMessage)
                              .WithTo(new SendContact(email))
                              .Build();

            // invoke API to send malJetEmail
            var response = await client.SendTransactionalEmailAsync(malJetEmail);

            if (response.Messages.Length == 1)
            {
                Console.WriteLine("Success");
            }
        }
예제 #3
0
        static public async System.Threading.Tasks.Task EnviarEmailAsync(string email, string nombre, DateTime horario, string peluquero)
        {
            var imagenHTML = @"<img src='http://friseur.azurewebsites.net/img/logo.png' style ='width:300px;height:300px;' > ";

            MailjetClient  client  = new MailjetClient("7ae7ed62b20c4df07110d474410769ae", "889c023b436e6922b67fd16ffa8fb1cc");
            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "Friseur Barber Shop")
            .Property(Send.Subject, "Gracias por sacar un turno con nostros!")
            .Property(Send.TextPart, "Hola " + nombre + "! Este es tu turno para cortate el pelo: " + horario.ToString())
            .Property(Send.HtmlPart, imagenHTML +
                      "<h3>Hola " + nombre + "!</h3><br />Este es tu turno para cortate el pelo: " + horario.ToString() + "<br /> Peluquero: " + peluquero)
            .Property(Send.To, nombre + " <" + email + ">");
            MailjetResponse response = await client.PostAsync(request);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine(string.Format("Total: {0}, Count: {1}\n", response.GetTotal(), response.GetCount()));
                Console.WriteLine(response.GetData());
            }
            else
            {
                Console.WriteLine(string.Format("StatusCode: {0}\n", response.StatusCode));
                Console.WriteLine(string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()));
                Console.WriteLine(string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
            }
        }
예제 #4
0
        private async Task <long> CreateTemplate()
        {
            // arrange
            var templateName = "C# integration test template " + DateTime.UtcNow;

            MailjetRequest request = new MailjetRequest
            {
                Resource = Template.Resource,
            }
            .Property(Template.Author, "Mailjet team")
            .Property(Template.Copyright, "Mailjet")
            .Property(Template.Description, "Used to send templated emails in C# SDK integration test")
            .Property(Template.EditMode, Template.EditModeValue_MJMLBuilder)
            .Property(Template.IsTextPartGenerationEnabled, true)
            .Property(Template.Locale, "en_US")
            .Property(Template.Name, templateName)
            .Property(Template.OwnerType, Template.OwnerTypeValue_Apikey)
            .Property(Template.Purposes, JArray.FromObject(new[] { "transactional" }));

            // act
            MailjetResponse response = await _client.PostAsync(request);

            // assert
            Assert.IsTrue(response.IsSuccessStatusCode);

            Assert.AreEqual(1, response.GetTotal());
            Assert.AreEqual(templateName, response.GetData().Single().Value <string>("Name"));

            long templateId = response.GetData().Single().Value <long>("ID");

            return(templateId);
        }
예제 #5
0
        ///
        /// This calls sends a message to one recipient with a CustomID
        ///
        //public ActionResult Index()
        //{
        //    return View();
        //}

        //public ActionResult SendEmail()
        //{
        //    //ExecuteTest().Wait();
        //    Execute(123);

        //    return View("MemberResponse");
        //}
        static async Task RunAsync()
        {
            string Blackjack_Public_Key  = WebConfigurationManager.AppSettings["apiPublicMJKey"];
            string Blackjack_Private_Key = WebConfigurationManager.AppSettings["apiPrivateMJKey"];

            MailjetClient  client  = new MailjetClient(Blackjack_Public_Key, Blackjack_Private_Key); //(Environment.GetEnvironmentVariable(Blackjack_Public_Key), Environment.GetEnvironmentVariable(Blackjack_Private_Key));
            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "Jonas Paskus")
            .Property(Send.Subject, "Your company's event outing!")
            .Property(Send.TextPart, "Dear passenger, welcome to Mailjet! May the delivery force be with you!")
            .Property(Send.HtmlPart, "<h3>Dear passenger, welcome to Mailjet!</h3><br />May the delivery force be with you!")
            .Property(Send.To, new JArray {
                new JObject {
                    { "Email", "*****@*****.**" }
                }
            });
            MailjetResponse response = await client.PostAsync(request);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine(string.Format("Total: {0}, Count: {1}\n", response.GetTotal(), response.GetCount()));
                Console.WriteLine(response.GetData());
            }
            else
            {
                Console.WriteLine(string.Format("StatusCode: {0}\n", response.StatusCode));
                Console.WriteLine(string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()));
                Console.WriteLine(string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
            }
        }
예제 #6
0
        public async Task <ActionResult> Post([FromBody] Xby2Message email)
        {
            var username = Configuration["XBY2_WEBSITE_API_MAILJET_USERNAME"];
            var password = Configuration["XBY2_WEBSITE_API_MAILJET_PASSWORD"];

            if (username == null || password == null)
            {
                return(StatusCode(500, "API Credentials not set."));
            }

            var apiUrl    = Configuration.GetValue <string>("ApplicationSettings:EmailApiUrl");
            var fromEmail = Configuration.GetValue <string>("ApplicationSettings:FromEmail");
            var toEmail   = Configuration.GetValue <string>("ApplicationSettings:ToEmail");
            var subject   = Configuration.GetValue <string>("ApplicationSettings:Subject");

            using (HttpClient client = new HttpClient())
            {
                var authorizationString = string.Format("{0}:{1}", username, password);
                var byteArray           = Encoding.ASCII.GetBytes(authorizationString);
                client.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

                MailjetMessage mailjetMessage =
                    MailjetMessage.FromXby2Message(email, fromEmail, toEmail, subject);
                MailjetRequest request     = new MailjetRequest(mailjetMessage);
                var            requestJson = request.ToJson();

                var response = await client.PostAsync(apiUrl, new StringContent(requestJson, Encoding.UTF8, "application/json"));

                response.EnsureSuccessStatusCode();
            }

            return(Ok());
        }
예제 #7
0
        public static async Task <string> GetValidSenderEmail(MailjetClient client)
        {
            MailjetRequest request = new MailjetRequest
            {
                Resource = Sender.Resource
            };

            MailjetResponse response = await client.GetAsync(request);

            Assert.AreEqual(200, response.StatusCode);

            foreach (var emailObject in response.GetData())
            {
                if (emailObject.Type != JTokenType.Object)
                {
                    continue;
                }

                if (emailObject.Value <string>("Status") == "Active")
                {
                    return(emailObject.Value <string>("Email"));
                }
            }

            Assert.Fail("Cannot find Active sender address under given account");
            throw new AssertFailedException();
        }
예제 #8
0
        /// <summary>
        /// Createse a new Mailjet contact
        /// </summary>
        /// <param name="apiKey"></param>
        /// <param name="apiSecret"></param>
        /// <param name="contactName"></param>
        /// <param name="contactEmail"></param>
        /// <returns></returns>
        public static async Task <int> CreateContactAsync(this IEmailSender emailSender, string apiKey, string apiSecret, string contactName, string contactEmail)
        {
            int           contactId = 0;
            MailjetClient client    = new MailjetClient(apiKey, apiSecret)
            {
                Version = ApiVersion.V3,
            };

            MailjetRequest request = new MailjetRequest
            {
                Resource = Contact.Resource,
            }
            .Property(Contact.IsExcludedFromCampaigns, "true")
            .Property(Contact.Name, contactName)
            .Property(Contact.Email, contactEmail);
            MailjetResponse response = await client.PostAsync(request);

            if (response.IsSuccessStatusCode)
            {
                var responseData = response.GetData();
                List <ResponseClass> responseDataList = JsonConvert.DeserializeObject <List <ResponseClass> >(responseData.ToString());
                contactId = responseDataList.FirstOrDefault().ID;
            }

            return(contactId);
        }
예제 #9
0
    public async Task SendMail(MailjetMail mailjetMail)
    {
        if (!_isSendingMailAllowed)
        {
            return;
        }

        var email  = ConvertToMailjetMessage(mailjetMail);
        var emails = new List <MailjetMessage <object> > {
            email
        };

        try
        {
            var request = new MailjetRequest
            {
                Resource = Send.Resource
            }
            .Property(Send.Messages, JArray.FromObject(emails));

            var response = await _clientV3_1.PostAsync(request);

            if (!response.IsSuccessStatusCode)
            {
                throw new MailjetApiClientException(response.FormatForLogs());
            }
        }
        catch (Exception e)
        {
            throw new MailjetApiClientException(e.Message, e.InnerException);
        }
    }
        public async Task <long> AssertCreateContact()
        {
            // arrange
            var request = new MailjetRequest
            {
                Resource = Contact.Resource,
            }
            .Property(Contact.IsExcludedFromCampaigns, "true")
            .Property(Contact.Name, _contactName)
            .Property(Contact.Email, _contactEmail);

            // act
            var response = await _client.PostAsync(request);

            // assert
            Assert.AreEqual(201, response.StatusCode);
            Assert.AreEqual(1, response.GetCount());
            Assert.AreEqual(1, response.GetTotal());

            var firstObject = response.GetData()[0];

            Assert.AreEqual(true, firstObject.Value <bool>("IsExcludedFromCampaigns"));
            Assert.AreEqual(_contactName, firstObject.Value <string>("Name"));
            Assert.AreEqual(_contactEmail, firstObject.Value <string>("Email"));

            var id = firstObject.Value <long>("ID");

            return(id);
        }
예제 #11
0
        /// <summary>
        /// Adds an existing mailjet contact to a contact list
        /// </summary>
        /// <param name="apiKey"></param>
        /// <param name="apiSecret"></param>
        /// <param name="contactId"></param>
        /// <param name="listId"></param>
        /// <returns></returns>
        public static async Task <long> AddContactToContactListAsync(this IEmailSender emailSender, string apiKey, string apiSecret, string contactId, string listId)
        {
            long          listRecipientId = 0;
            MailjetClient client          = new MailjetClient(apiKey, apiSecret)
            {
                Version = ApiVersion.V3,
            };

            MailjetRequest request = new MailjetRequest
            {
                Resource = Listrecipient.Resource,
            }
            .Property("ContactID", contactId)
            .Property("ListID", listId);
            MailjetResponse response = await client.PostAsync(request);

            if (response.IsSuccessStatusCode)
            {
                var responseData = response.GetData();
                List <ResponseClass> responseDataList = JsonConvert.DeserializeObject <List <ResponseClass> >(responseData.ToString());
                listRecipientId = responseDataList.FirstOrDefault().ID;
            }

            return(listRecipientId);
        }
예제 #12
0
        public async Task SendEmail(string emailId, string firstName, string eventName, string action)
        {
            //MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE"));
            // created object with required keys and add all other parameters
            MailjetClient  client  = new MailjetClient("2946db6b27a9f2d02583fd29e972553d", "3baa0be00212cb6193dd2c281122896e");
            MailjetRequest request = new MailjetRequest {
                Resource = Send.Resource,
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "TCSS 559 Group 9")
            .Property(Send.Subject, "Easy Events - Event Registration")
            .Property(Send.TextPart, "Registration Successfull")
            .Property(Send.HtmlPart, "<h3>Dear " + firstName + ", <br /> You have successfully " + action + " for event " + eventName + ".<br /> Thanks,<br />Easy Events Team")//body of email
            .Property(Send.Recipients, new JArray {
                new JObject {
                    { "Email", emailId }
                }
            });                                                                        //add receiver email
            MailjetResponse response = await client.PostAsync(request);

            if (response.IsSuccessStatusCode)
            {
                Console.WriteLine(string.Format("Total: {0}, Count: {1}\n", response.GetTotal(), response.GetCount()));
                Console.WriteLine(response.GetData());
            }
            else
            {
                Console.WriteLine(string.Format("StatusCode: {0}\n", response.StatusCode));
                Console.WriteLine(string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()));
                Console.WriteLine(string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
            }
        }
예제 #13
0
 public List <MailJetSegment> GetSegments(string apiKey, string apiSecret)
 {
     try
     {
         MailjetClient  client  = new MailjetClient(apiKey, apiSecret);
         MailjetRequest request = new MailjetRequest
         {
             Resource = Contactfilter.Resource,
         }
         .Filter(Contact.ContactsList, "$ContactsListID");
         MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result;
         if (response.IsSuccessStatusCode)
         {
             List <MailJetSegment> segmentsList = JsonConvert.DeserializeObject <List <MailJetSegment> >(response.GetData().ToString());
             return(segmentsList);
         }
         else
         {
             telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
         }
     }
     catch (Exception ex)
     {
         var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
         telemetria.Critical(messageException);
     }
     return(null);
 }
예제 #14
0
        public MailJetProfile GetMyProfile(MailjetClient client)
        {
            try
            {
                MailjetRequest request = new MailjetRequest
                {
                    Resource = Myprofile.Resource,
                };

                MailjetResponse response = Task.Run(() => client.GetAsync(request)).Result;

                if (response.IsSuccessStatusCode)
                {
                    List <MailJetProfile> listSender = JsonConvert.DeserializeObject <List <MailJetProfile> >(response.GetData().ToString());
                    return(listSender.FirstOrDefault());
                }
                else
                {
                    telemetria.Critical(string.Format("StatusCode: {0}\n", response.StatusCode) + " " + string.Format("ErrorInfo: {0}\n", response.GetErrorInfo()) + " " + string.Format("ErrorMessage: {0}\n", response.GetErrorMessage()));
                }
            }
            catch (Exception ex)
            {
                var messageException = telemetria.MakeMessageException(ex, System.Reflection.MethodBase.GetCurrentMethod().Name);
                telemetria.Critical(messageException);
            }

            return(null);
        }
        public async Task <bool> SendEmailValidationAsync(string email, string validateLink)
        {
            var mailTemplateId = _mailSettings.Value.MailValidationTemplateId.ContainsKey(CultureInfo.CurrentUICulture.Name) ?
                                 _mailSettings.Value.MailValidationTemplateId[CultureInfo.CurrentUICulture.Name] :
                                 _mailSettings.Value.MailValidationTemplateId["en-US"];

            MailjetRequest request = new MailjetRequest {
                Resource = Send.Resource
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "CryptoWorkPlace Support")
            .Property(Send.Subject, "Customer account verification")
            .Property(Send.MjTemplateID, mailTemplateId.ToString())
            .Property(Send.MjTemplateLanguage, true)
            .Property(Send.Vars, new JObject {
                { "link", validateLink }
            })
            .Property(Send.Recipients, new JArray {
                new JObject {
                    { "Email", email }
                }
            });

            return(await SendRequestAsync(request));
        }
        public async Task SendPasswordResetEmailAsync(User user, string token)
        {
            var client = new MailjetClient(_apiKey, _apiSecret)
            {
                Version = ApiVersion.V3_1,
            };
            var request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.Messages, new JArray {
                new JObject {
                    { "From", new JObject {
                          { "Email", _senderEmailAddress },
                          { "Name", "Asi9 Solutions Support" }
                      } },
                    { "To", new JArray {
                          new JObject {
                              { "Email", user.UserName },
                              { "Name", "You" }
                          }
                      } },
                    { "Subject", "Password Reset" },
                    { "TextPart", "Greetings from Asi9 Solutions!" },
                    { "HTMLPart", $"<div>Hi {user.FirstName} {user.LastName},</div><br /><div>To reset your password, click the link below. " +
                      " If you did not request your password to be reset, just ignore this email and your password will continue to stay the same. </div>" +
                      $"<div><a href=\"{_clientBaseUrl}/passwordreset/{token}\"> Password Reset </a></div>" +
                      "<br /><br /><div><br />Asi9 Solutions Support</div>" }
                }
            });

            await client.PostAsync(request);
        }
예제 #17
0
 static async Task RunAsync()
 {
     FacturaReporte facturaReporte = new FacturaReporte();
     string         fac            = facturaReporte.factura();
     //MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MJ_APIKEY_PUBLIC"), Environment.GetEnvironmentVariable("MJ_APIKEY_PRIVATE"));
     MailjetClient cli = new MailjetClient("e61028175953457b9abf53f13f5cbb8d", "0d77e47c3b62e5ea63165692ddc32e1c")
     {
         Version = ApiVersion.V3_1,
     };
     MailjetRequest request = new MailjetRequest
     {
         Resource = Send.Resource,
     }
     .Property(Send.Messages, new JArray {
         new JObject {
             { "From", new JObject {
                   { "Email", "*****@*****.**" },
                   { "Name", "Favio LopezUCB" }
               } },
             { "To", new JArray {
                   new JObject {
                       { "Email", "*****@*****.**" },
                       { "Name", "Favio Lopez" }
                   }
               } },
             { "Subject", "Mira este emaill" },
             { "TextPart", "Aqui tiens tu factura querido amigo" },
             { "HTMLPart", fac },
         }
     });
     MailjetResponse response = await cli.PostAsync(request);
 }
        public async Task SendAccountActivationEmailAsync(User user, string token)
        {
            var client = new MailjetClient(_apiKey, _apiSecret)
            {
                Version = ApiVersion.V3_1,
            };
            var request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.Messages, new JArray {
                new JObject {
                    { "From", new JObject {
                          { "Email", _senderEmailAddress },
                          { "Name", "Asi9 Solutions Support" }
                      } },
                    { "To", new JArray {
                          new JObject {
                              { "Email", user.UserName },
                              { "Name", "You" }
                          }
                      } },
                    { "Subject", "Welcome to Asi9 Solutions" },
                    { "TextPart", "Greetings from Asi9 Solutions!" },
                    { "HTMLPart", $"<div>Hi {user.FirstName} {user.LastName},</div><br /><div>Thank you for joining Asi9 Solutions. Please verify your email address.  " +
                      $"<div><a href=\"{_clientBaseUrl}/activation/{token}\"> Activate Account </a></div>" +
                      "<br /><br /><div><br />Asi9 Solutions Support</div>" }
                }
            });

            await client.PostAsync(request);
        }
예제 #19
0
        private async Task AddContactToAMailingList(MailjetContact mailjetContact, int id)
        {
            try
            {
                var requestToContactList = new MailjetRequest
                {
                    Resource   = ContactManagecontactslists.Resource,
                    ResourceId = ResourceId.Numeric(id)
                }.Property(ContactManagecontactslists.ContactsLists, new JArray
                {
                    new JObject
                    {
                        { "Action", "addnoforce" },
                        { "ListID", mailjetContact.ContactListId }
                    }
                });
                var response = await _clientV3.PostAsync(requestToContactList);

                if (!response.IsSuccessStatusCode)
                {
                    throw new MailjetApiClientException(response.FormatForLogs());
                }
            }
            catch (Exception e)
            {
                throw new MailjetApiClientException(e.Message, e.InnerException);
            }
        }
        public async Task SendConfirmationEmailAsync(User user)
        {
            var client = new MailjetClient(_apiKey, _apiSecret)
            {
                Version = ApiVersion.V3_1,
            };
            var request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.Messages, new JArray {
                new JObject {
                    { "From", new JObject {
                          { "Email", _senderEmailAddress },
                          { "Name", "Asi9 Solutions Support" }
                      } },
                    { "To", new JArray {
                          new JObject {
                              { "Email", user.UserName },
                              { "Name", "You" }
                          }
                      } },
                    { "Subject", "Welcome to Asi9 Solutions!" },
                    { "TextPart", "Greetings from Asi9 Solutions!" },
                    { "HTMLPart", $"<div>Dear {user.FirstName} {user.LastName},</div><br /><div>Thank you for signing up for Asi9 Solutions Dashboard!" +
                      " You can now monitor your devices remotely and view experiment data as well as incident reports all from Asi9 Solutions Dashboard. " +
                      " Click the following link to start your experience with Asi9 Solutions! </div>" +
                      $"<div><a href=\"{_clientBaseUrl}\"> Asi9 Solutions </a></div>" +
                      "<br /><br /><div><br />Asi9 Solutions Support</div>" }
                }
            });

            await client.PostAsync(request);
        }
예제 #21
0
        private async Task FillTemplateContent(long templateId)
        {
            // arrange
            var content = File.ReadAllText(Path.Combine("Resources", "MJMLTemplate.mjml"));

            MailjetRequest request = new MailjetRequest
            {
                Resource   = TemplateDetailcontent.Resource,
                ResourceId = ResourceId.Numeric(templateId)
            }
            .Property(TemplateDetailcontent.MJMLContent, content)
            .Property(TemplateDetailcontent.Headers, JObject.FromObject(new Dictionary <string, string>()
            {
                { "Subject", "Test transactional template subject " + DateTime.UtcNow },
                { "SenderName", "Test transactional template" },
                { "SenderEmail", _senderEmail },
                { "From", _senderEmail },
            }));

            // act
            MailjetResponse response = await _client.PostAsync(request);

            // assert
            Assert.IsTrue(response.IsSuccessStatusCode);
            Assert.AreEqual(1, response.GetTotal());
            Assert.AreEqual(content, response.GetData().Single().Value <string>("MJMLContent"));
        }
        public async Task <bool> SendEmailAsync(string email, string subject, string message, string html = null)
        {
            MailjetRequest request = new MailjetRequest {
                Resource = Send.Resource
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "CryptoWorkPlace Info")
            .Property(Send.Subject, subject)
            .Property(Send.TextPart, message);

            if (!string.IsNullOrEmpty(html))
            {
                request.Property(Send.HtmlPart, html);
            }

            request.Property(Send.Recipients, new JArray {
                new JObject {
                    { "Email", email }
                }
            });


            MailjetResponse response = await _client.PostAsync(request);

            return(response.IsSuccessStatusCode);
        }
예제 #23
0
        public async Task SendEmailAsync(string email, string subject, string htmlMessage)
        {
            MailjetClient client = new MailjetClient(_mailJetSettings.PublicKey,
                                                     _mailJetSettings.PrivateKey);

            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.Messages, new JArray {
                new JObject {
                    { "From", new JObject {
                          { "Email", _mailJetSettings.Email },
                          { "Name", "Mailjet Pilot" }
                      } },
                    { "To", new JArray {
                          new JObject {
                              { "Email", email },
                              { "Name", "Hello" }
                          }
                      } },
                    { "Subject", subject },
                    { "HTMLPart", htmlMessage }
                }
            });
            MailjetResponse response = await client.PostAsync(request);
        }
        /// <summary>
        /// Sends transactional emails using send API v3.1
        /// </summary>
        public static async Task <TransactionalEmailResponse> SendTransactionalEmailsAsync(this MailjetClient mailjetClient,
                                                                                           IEnumerable <TransactionalEmail> transactionalEmails, bool isSandboxMode = false)
        {
            if (transactionalEmails.Count() > SendV31.MaxEmailsPerBatch || !transactionalEmails.Any())
            {
                throw new MailjetClientConfigurationException($"Send Emails API v3.1 allows to send not more than {SendV31.MaxEmailsPerBatch} emails per call");
            }

            var request = new SendEmailRequest
            {
                Messages             = transactionalEmails.ToList(),
                SandboxMode          = isSandboxMode,
                AdvanceErrorHandling = true
            };

            var clientRequest = new MailjetRequest
            {
                Resource = SendV31.Resource,
                Body     = JObject.FromObject(request, Serializer)
            };

            var clientResponse = await mailjetClient.PostAsync(clientRequest)
                                 .ConfigureAwait(false);

            var result = clientResponse.Content.ToObject <TransactionalEmailResponse>();

            return(result);
        }
        public void TestSmsStatisticsAsync()
        {
            var expectedData = new JArray();
            var mockHttp     = new MockHttpMessageHandler();
            var jsonResponse = GenerateJsonResponse(1, 1, expectedData);

            // Setup a respond for the user api (including a wildcard in the URL)
            mockHttp.When("https://api.mailjet.com/v4/*")
            .Respond(JsonMediaType, jsonResponse);         // Respond with JSON

            IMailjetClient client = new MailjetClient(API_TOKEN, mockHttp)
            {
                Version = ApiVersion.V4
            };

            MailjetRequest request = new MailjetRequest
            {
                Resource = sms.SMS.Resource
            }
            .Filter(sms.SMS.FromTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString())
            .Filter(sms.SMS.ToTS, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds().ToString());

            MailjetResponse response = client.GetAsync(request).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            Assert.IsTrue(JToken.DeepEquals(expectedData, response.GetData()));
        }
        public async Task <bool> SendEmailFailedTransactionAsync(string email, string htmlText)
        {
            var mailTemplateId = _mailSettings.Value.MailTemplateId.ContainsKey(CultureInfo.CurrentUICulture.Name) ?
                                 _mailSettings.Value.MailTemplateId[CultureInfo.CurrentUICulture.Name] :
                                 _mailSettings.Value.MailTemplateId["en-US"];

            MailjetRequest request = new MailjetRequest {
                Resource = Send.Resource
            }
            .Property(Send.FromEmail, "*****@*****.**")
            .Property(Send.FromName, "CryptoWorkPlace Info")
            .Property(Send.Subject, _localizer["Subscribe_Subject"].Value)
            .Property(Send.MjTemplateID, mailTemplateId.ToString())
            .Property(Send.MjTemplateLanguage, true)
            .Property(Send.Vars, new JObject {
                { "message", htmlText }
            })
            .Property(Send.Recipients, new JArray {
                new JObject {
                    { "Email", email }
                }
            });

            return(await SendRequestAsync(request));
        }
예제 #27
0
        public static async Task SendMail(String subject, String message)
        {
            String recipient = Environment.GetEnvironmentVariable("ErrorEmailRecipient");

            MailjetClient client = new MailjetClient(Environment.GetEnvironmentVariable("MailJetApiKey"), Environment.GetEnvironmentVariable("MailJetApiSecret"))
            {
                Version = ApiVersion.V3_1,
            };
            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource,
            }.Property(Send.Messages, new JArray {
                new JObject {
                    { "From", new JObject {
                          { "Email", Environment.GetEnvironmentVariable("ErrorMailSenderAddress") },
                          { "Name", "DrySafe" }
                      } },
                    { "To", new JArray {
                          new JObject {
                              { "Email", recipient }
                          }
                      } },
                    { "Subject", subject },
                    { "TextPart", message }
                }
            });
            MailjetResponse response = await client.PostAsync(request);
        }
        //public async Task<bool> SendEmailAsync(string email, string subject, string message, string html = null)
        //{

        //    MailjetRequest request = new MailjetRequest { Resource = Send.Resource }
        //        .Property(Send.FromEmail, "*****@*****.**")
        //        .Property(Send.FromName, "CryptoWorkPlace Info")
        //        .Property(Send.Subject, subject)
        //        .Property(Send.TextPart, message);
        //    if (!string.IsNullOrEmpty(html))
        //    {
        //        request.Property(Send.HtmlPart, html);
        //    }

        //    request.Property(Send.Recipients, new JArray { new JObject { { "Email", email } } });


        //    return await SendRequestAsync(request);
        //}

        public async Task <bool> SendEmailSubscription(string email, string name)
        {
            var res = await AddUserToContactList(email, name);

            if (res)
            {
                var welcomeTemplateId = _mailSettings.Value.WelcomeTemplateId.ContainsKey(CultureInfo.CurrentUICulture.Name) ?
                                        _mailSettings.Value.WelcomeTemplateId[CultureInfo.CurrentUICulture.Name] :
                                        _mailSettings.Value.WelcomeTemplateId["en-US"];

                MailjetRequest request = new MailjetRequest {
                    Resource = Send.Resource
                }
                .Property(Send.FromEmail, "*****@*****.**")
                .Property(Send.FromName, "CryptoWorkPlace Info")
                .Property(Send.Subject, _localizer["Subscribe_Subject"].Value)
                .Property(Send.MjTemplateID, welcomeTemplateId.ToString())
                .Property(Send.MjTemplateLanguage, true)
                .Property(Send.Recipients, new JArray {
                    new JObject {
                        { "Email", email }
                    }
                });

                return(await SendRequestAsync(request));
            }
            return(false);
        }
 private async Task SendNewPassword(string mail, string password)
 {
     MailjetClient client = new MailjetClient("36b25d6cba30469cf1cc8911bf79d22a", "882892776ad1f8768b813bcc8e8358b0")
     {
         Version = ApiVersion.V3_1,
     };
     MailjetRequest request = new MailjetRequest {
         Resource = Send.Resource,
     }
     .Property(Send.Messages, new JArray {
         new JObject {
             { "From",
               new JObject {
                   { "Email", "*****@*****.**" },
                   { "Name", "MrPiatto Configuration Manager" }
               } }, { "To",
                      new JArray {
                          new JObject {
                              { "Email",
                            $"{mail}" }, {
                                  "Name",
                                  "Ailem"
                              }
                          }
                      } }, { "Subject", "Tu nueva contraseña de MrPiatto." }, { "TextPart", "Sending Password" }, { "HTMLPart",
                                                                                                                    $"<h3>Nos alegra que seas parte de MrPiatto.</h3><br/><br/>" +
                                                                                                                    $"Aquí esta tu nueva contraseña:{password}<br/>" +
                                                                                                                    $"Favor de no responder a este correo." }, { "CustomID", "AppGettingStartedTest" }
         }
     });
     MailjetResponse response = await client.PostAsync(request);
 }
예제 #30
0
        public async Task SendEmailAsync(string userEmail, string emailSubject, string message)
        {
            MailjetClient client = new MailjetClient("34c1193f9b7cb62a83538984912b536b", "9defca4f456902995eb5f0f8df13c6a6")
            {
                Version = ApiVersion.V3_1,
            };
            MailjetRequest request = new MailjetRequest
            {
                Resource = Send.Resource,
            }
            .Property(Send.Messages, new JArray {
                new JObject {
                    {
                        "From",
                        new JObject {
                            { "Email", "*****@*****.**" },
                            { "Name", "Adel Lajil" }
                        }
                    }, {
                        "To",
                        new JArray {
                            new JObject {
                                {
                                    "Email",
                                    userEmail
                                }, {
                                    "Name",
                                    "Adel"
                                }
                            }
                        }
                    }, {
                        "Subject",
                        emailSubject
                    }, {
                        "TextPart",
                        emailSubject
                    }, {
                        "HTMLPart",
                        message
                    }, {
                        "CustomID",
                        "AppGettingStartedTest"
                    }
                }
            });
            MailjetResponse response = await client.PostAsync(request);


            /*  var apiKey = _configuration["SendGridApiKey"];
             * var client = new SendGridClient(apiKey);
             * var from = new EmailAddress("*****@*****.**", "Management Web Application");
             * var subject = emailSubject;
             * var to = new EmailAddress(userEmail, "Test Email");
             * var plainTextContent = message;
             * var htmlContent = message;
             * var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
             * var response = await client.SendEmailAsync(msg);
             * return new SendEmailResponse();*/
        }