public IActionResult SendFirstLoginCredentials([FromBody] FirstLoginCredentialsViewModel model) { string baseUrl = $"{Request.Scheme}://{Request.Host.Value}{Request.PathBase.Value}"; string loginLink = Url.Content($"{baseUrl}/login"); var result = emailSender.SendFirstLoginCredentials(model, loginLink); if (result.Successful) { return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } return(StatusCode(496, new { response = ApiMessages.EmailNotSent() })); }
public SendEmailResponse SendFirstLoginCredentials(FirstLoginCredentialsViewModel model, string loginLink) { var message = new MimeMessage(); var htmlContent = ""; var body = EmailMessages.FirstLoginCredentials(model.Language); htmlContent += "<h1 style = 'font-weight: 500;'><span style = 'color: #0078d7;'>Island</span><span style = 'color: #5db2ff;'> Cruises</span></h1>"; htmlContent += "<p>" + body[0] + model.DisplayName + "!" + "</p>"; htmlContent += "<p>" + body[1] + "</p>"; htmlContent += "<p>" + body[2] + model.UserName + "</p>"; htmlContent += "<p>" + body[3] + model.OneTimePassword + "</p>"; htmlContent += "<br>"; htmlContent += "<a style = 'font-variant: petite-caps; color: #ffffff; margin: 1rem; background-color: #55828B; padding: 1rem; border-radius: 5px; text-decoration: none;' href=" + loginLink + ">" + body[7] + "</a>"; htmlContent += "<br>"; htmlContent += "<br>"; htmlContent += "<p style = 'color: #ff0000;'>" + body[4] + "</p>"; htmlContent += "<p style = 'color: #ff0000;'>" + body[5] + "</p>"; htmlContent += "<p style = 'color: #ff0000;'>" + body[6] + "</p>"; htmlContent += "<br>"; htmlContent += "<p>" + body[8] + "</p>"; htmlContent += "<br>"; htmlContent += "<p>" + body[9] + "</p>"; htmlContent += "<p>Island Cruises " + DateTime.Now.ToString("yyyy") + "</p>"; message.From.Add(new MailboxAddress(settings.From, settings.Username)); message.To.Add(new MailboxAddress(model.DisplayName, model.Email)); message.Subject = body[10]; message.Body = new TextPart("html") { Text = htmlContent }; using (var client = new MailKit.Net.Smtp.SmtpClient()) { client.Connect(settings.SmtpClient, settings.Port, false); client.Authenticate(settings.Username, settings.Password); client.Send(message); client.Disconnect(true); } return(new SendEmailResponse()); }