Beispiel #1
0
        public async Task <IActionResult> OnPostMailgun(string data)
        {
            var message = new MailgunMessage()
            {
                ToAddresses = new List <string> {
                    Email
                },
                Subject      = "[TakNotify - Mailgun] Weather Forecast",
                PlainContent = $"Forecast: {data}"
            };

            var result = await _notification.SendEmailWithMailgun(message);

            TempData["Email"]       = Email;
            TempData["WeatherData"] = data;

            if (result.IsSuccess)
            {
                TempData["SuccessMessage"] = $"Email notification was sent to {string.Join(", ", message.ToAddresses)} via Mailgun";
                _logger.LogDebug("Email notification was sent to {toAddresses} via Mailgun", message.ToAddresses);
            }
            else
            {
                TempData["ErrorMessage"] = $"Failed to send notification to {string.Join(", ", message.ToAddresses)} via Mailgun. Please see the log.";
                _logger.LogWarning("Failed to send notification to {toAddresses} via Mailgun. Error: {error}", message.ToAddresses, result.Errors);
            }

            return(RedirectToPage());
        }
Beispiel #2
0
        public async Task <BaseResponse <MailgunMessage> > update(MailgunMessageRequest messageRequest)
        {
            var message = _mapper.Map <MailgunMessage>(messageRequest);

            MailgunMessage messageFound = null;

            var finalResponse = BaseResponseFactory <MailgunMessage> .CreateDefaultBaseResponse();

            var filter = false;

            if (messageRequest.Token.NotEmpty())
            {
                messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.Token == messageRequest.Token);

                if (messageFound == null)
                {
                    finalResponse.Errors.Add(new ApiError {
                        description = "Token not found."
                    });
                }

                filter = true;
            }

            if (messageRequest.MessageId.NotEmpty())
            {
                messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.MessageId == messageRequest.MessageId);

                if (messageFound == null)
                {
                    finalResponse.Errors.Add(new ApiError {
                        description = "MessageId not found."
                    });
                }

                filter = true;
            }

            if (messageFound != null)
            {
                _context.Attach(messageFound).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                finalResponse.Data.Add(messageFound);
            }

            if (!filter)
            {
                finalResponse.Errors.Add(new ApiError {
                    description = "inform either MessageId or Token to delete."
                });
            }

            return(finalResponse);
        }
Beispiel #3
0
        public void SendConfirmationEmail(MembershipUser user)
        {
            Mailgun.Init("key-4otkg7cfsi5qn9f$e9");

            string confirmationGuid = user.ProviderUserKey.ToString();
            string verifyUrl        = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/account/verify?ID=" + confirmationGuid;
            string sender           = "*****@*****.**";
            string recipients       = user.Email;

            MailgunMessage.SendText(sender, recipients, "Owlas - Confirmação de registo", "Para confirmares o teu endereço de email e ires para o owlas carrega neste link:\n\n" + verifyUrl + "\n\n\nA equipa owlas.com");
        }
        public static void Main()
        {
            Mailgun.Init("key-afy6amxoo2fnj$u@mc");

            try
            {
                string sender     = "*****@*****.**";
                string recipients = "You <*****@*****.**>, [email protected]";
                string rawMime    =
                    @"X-Priority: 1 (Highest)
X-Mailgun-Tag: sample_raw
Content-Type: text/plain;charset=UTF-8
From: [email protected]
To: [email protected]
Subject: Hello raw API!

This message is sent by Mailgun C# API";

                // Send a simpe text message
                MailgunMessage.SendText(sender, recipients,
                                        "Hello text API!", "Hi!\nI am sending the message using Mailgun C# API");

                // Send a simpe text message and tag it
                var options = new MailgunMessage.Options();
                options.SetHeader(MailgunMessage.MAILGUN_TAG, "sample_text");
                MailgunMessage.SendText(sender, recipients,
                                        "Hello text API + tag!", "Hi!\nI am sending the message using Mailgun C# API and setting the tag",
                                        options);

                // Send a MIME message
                MailgunMessage.SendRaw(sender, recipients, Encoding.UTF8.GetBytes(rawMime));

                // .NET Framework also has System.Net.Mail.MailMessage class which simplifies
                // MIME constriction. MailMessage can be sent by System.Net.Mail.SmtpClient class.
                // Login into Mailgun Control Panel and look for your SMTP server address, user and password.

                Console.WriteLine("Messages sent");
            }
            catch (MailgunException ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }
Beispiel #5
0
        private static async Task Main(string[] args)
        {
            Office365ClientConfig = new Office365ClientConfig();
            EmailMessage          = new EmailMessage();

            MailgunClientConfig = new MailgunClientConfig();
            MailgunMessage      = new MailgunMessage();

            // CollectInputForOffice365Email();
            // HardcodeInputForOffice365();

            // CollectInputForMailgunEmail();
            HardcodeInputForMailgun();

            // await TestOffice365Client();
            var response = await TestMailgunClient();

            Console.WriteLine($"Email sent with response code {response.Response.StatusCode}");
        }
Beispiel #6
0
        public async Task <MailgunResult> Post([FromBody] MessageViewModel model)
        {
            _logger.LogInformation("POST /api/contact {model}", model);
            if (!ModelState.IsValid || model == null)
            {
                _logger.LogInformation("ModelState invalid");
                return(new MailgunResult {
                    Success = false
                });
            }

            using (var client = new HttpClient())
            {
                var url = _mailgunOptions.Value.Url;

                var message = new MailgunMessage
                {
                    From    = "Jah Bot <*****@*****.**>",
                    To      = "*****@*****.**",
                    Subject = "Contact Request for jahengineering.com",
                    Html    = model.ToHtmlString()
                };

                _logger.LogInformation("Sending message to mailgun at {url} with {message}", url, message);

                var content  = new StringContent(message.ToQueryString(), Encoding.UTF8, "application/x-www-form-urlencoded");
                var response = await client.PostAsync(url, content);

                var json = await response.Content.ReadAsStringAsync();

                _logger.LogInformation("Received mailgun response: {json}", json);
                var result = JsonConvert.DeserializeObject <MailgunResult>(json);
                result.Success = response.IsSuccessStatusCode;
                _logger.LogInformation("Deserialized response to {result}", result);
                return(result);
            }
        }
Beispiel #7
0
        public async Task <BaseResponse <MailgunMessage> > delete(MailgunMessageRequest messageRequest)
        {
            var message = _mapper.Map <MailgunMessage>(messageRequest);

            MailgunMessage messageFound = null;

            var finalResponse = BaseResponseFactory <MailgunMessage> .CreateDefaultBaseResponse();

            IList <ApiError> errors = new List <ApiError>();

            var filter = false;

            if (messageRequest.Token.NotEmpty())
            {
                messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.Token == message.Token);

                if (messageFound == null)
                {
                    errors.Add(new ApiError {
                        description = "Token not found."
                    });
                }

                filter = true;
            }

            if (messageRequest.MessageId.NotEmpty())
            {
                messageFound = await _context.MailgunMessages.FirstOrDefaultAsync(e => e.Id == Guid.Parse(message.MessageId));

                if (messageFound == null)
                {
                    errors.Add(new ApiError {
                        description = "MessageId not found."
                    });
                }

                filter = true;
            }

            if (messageFound != null)
            {
                _context.Remove(messageFound);
                await _context.SaveChangesAsync();

                finalResponse.Data.Add(messageFound);
            }

            if (!filter)
            {
                errors.Add(new ApiError {
                    description = "inform either MessageId or Token to delete."
                });
            }

            if (errors.Any())
            {
                finalResponse.Errors = errors.ToArray();
            }

            return(finalResponse);
        }