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()); }
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); }
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); } }
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}"); }
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); } }
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); }