예제 #1
0
파일: EmailSender.cs 프로젝트: henz90/hotel
        public void Execute(string apiKey, string subject, string message, string email)
        {
            Configuration.Default.AddApiKey("api-key", apiKey);
            // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
            // Configuration.Default.AddApiKeyPrefix("api-key", "Bearer");
            // Configure API key authorization: partner-key
            Configuration.Default.AddApiKey("partner-key", apiKey);
            // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
            // Configuration.Default.AddApiKeyPrefix("partner-key", "Bearer");

            var apiInstance   = new SMTPApi();
            var sendSmtpEmail = new SendSmtpEmail(sender: new SendSmtpEmailSender("No-Reply", "*****@*****.**"),
                                                  to: new List <SendSmtpEmailTo>()
            {
                new SendSmtpEmailTo(email, "Verify")
            },
                                                  htmlContent: message, subject: subject);

            try
            {
                // Send a transactional email
                CreateSmtpEmail result = apiInstance.SendTransacEmail(sendSmtpEmail);
                Debug.WriteLine(result);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling SMTPApi.SendTransacEmail: " + e.Message);
            }

            //return true;
        }
        public void SendEmailToContactWithAttachmnent(KeyValuePair <Contact, string> contactFilePathPair)
        {
            var apiInstance = new SMTPApi();
            var getTemplate = apiInstance.GetSmtpTemplate(int.Parse(_config["SMTP_TEMPLATE_ID"]));
            var from        = _config["SMTP_LOGIN"];
            var to          = contactFilePathPair.Key.Mail;
            var mail        = new MailMessage(from, to);

            mail.Attachments.Add(new Attachment(contactFilePathPair.Value));
            var template = Template.Parse(getTemplate.HtmlContent);
            var result   = template.Render(contactFilePathPair.Key);

            mail.Subject    = getTemplate.Subject;
            mail.Body       = result;
            mail.IsBodyHtml = true;
            try {
                _smtp.Send(mail);
                _logger.Information("Sending email to {name} [{email}]", contactFilePathPair.Key.Name, to);
            }
            catch (SmtpFailedRecipientException ex)
            {
                _logger.Error("Delivery failed to {name} | {email}", contactFilePathPair.Key.Name, to);
                Console.WriteLine("Delivery failed to {name} | {email}", contactFilePathPair.Key.Mail, ex.FailedRecipient);
            }
            catch (Exception e)
            {
                _logger.Error($"Error while sending the email to {contactFilePathPair.Key.Mail}");
                Console.WriteLine($"Error while sending the email to {contactFilePathPair.Key.Mail} : {e}");
            }
        }
예제 #3
0
        private void SendEmailToProvider(Email emailModel)
        {
            var fromEmailAddress = new PatientRepository().GetEmailAddress(int.Parse(Session["PatientId"].ToString()));
            var smptSendGrid     = new SMTPApi(fromEmailAddress, new List <string> {
                emailModel.Providers.SelectedItemId
            });

            smptSendGrid.SimpleEmail(emailModel.Subject, emailModel.MessageBody);
        }
        private async Task <string> SendViaSendInBlue(SendSmtpEmail msg)
        {
            var configuration = new Configuration();

            configuration.AddApiKey("api-key", emailSettings.SendInBlueSettings.ApiKey);
            var apiInstance = new SMTPApi(configuration);

            try
            {
                // Send a transactional email
                CreateSmtpEmail result = await apiInstance.SendTransacEmailAsync(msg);

                logger.LogDebug("SendInBlue sent email {Result}", result.MessageId);
                return(result.MessageId);
            }
            catch (Exception e)
            {
                throw new SendInBlueException("Exception when calling SMTPApi.SendTransacEmailAsync: ", e);
            }
        }
        public ActionResult PatientRegistration(PatientViewModel patientViewModel)
        {
            if (!LogOnHelper.CheckLogOn()) return RedirectToAction("Login", "Account");

            if (!ModelState.IsValid)
            {
                return View(patientViewModel);
            }
            try
            {
                HealthReunionDataAccess.HealthReunionEntities dataContext = new HealthReunionDataAccess.HealthReunionEntities();
                PatientRepository patientRepository = new PatientRepository();

                Patient patient = new Patient();
                patient.PatientId = patientViewModel.PatientViewEntity.PatientId;
                patient.ProviderId = int.Parse(Session["ProviderId"].ToString());
                patient.MedicalRecordNumber = Guid.NewGuid();
                patient.LastName = patientViewModel.PatientViewEntity.LastName.Trim();
                patient.FirstName = patientViewModel.PatientViewEntity.FirstName.Trim();
                patient.MiddleName = patientViewModel.PatientViewEntity.MiddleName.Trim();
                patient.DOB = DateTime.Parse(patientViewModel.PatientViewEntity.DOB).Date;
                patient.Address = patientViewModel.PatientViewEntity.Address.Trim();
                patient.Phone = patientViewModel.PatientViewEntity.Phone.Trim();
                patient.Email = patientViewModel.PatientViewEntity.Email.Trim();
                patient.City = patientViewModel.PatientViewEntity.City.Trim();
                patient.State = patientViewModel.PatientViewEntity.State.Trim();
                patient.Country = patientViewModel.PatientViewEntity.Country;
                patient.IsActive = true;

                if (patientViewModel.PatientViewEntity.Gender.Equals("Male"))
                    patient.Sex = true;
                else
                    patient.Sex = false;

                if (patientViewModel.PatientViewEntity.PatientId == 0)
                {
                    string defaultPassword = RandomPasswordGenerator.Generate(8);
                    defaultPassword = EncryptDecrypt.EncryptData(defaultPassword, EncryptDecrypt.ReadCert());
                    patientRepository.AddPatient(patient, patientViewModel.PatientViewEntity.UserName.Trim(), defaultPassword);
                    var sendMail = new SMTPApi(ConfigurationManager.AppSettings["SmtpFromEmailAddress"].ToString(), new List<String> { patient.Email });
                    var stringBuilder = new StringBuilder();
                    stringBuilder.AppendLine("<b>HealthReunion Patient Portal Log On Information. Below are the credentials</b><hr/>");
                    stringBuilder.AppendFormat("<br/>User Name: {0}", patientViewModel.PatientViewEntity.UserName.Trim());
                    stringBuilder.AppendFormat("<br/>Password: {0}", defaultPassword);
                    stringBuilder.AppendLine("<br/><hr/>Please log on to HealthReunion Patient Portal - http://healthreunionpatients.azurewebsites.net/ to access your clinical information.");
                    sendMail.SimpleHtmlEmail(stringBuilder.ToString());
                }
                else
                {
                    patientRepository.UpdatePatient(patient, patientViewModel.PatientViewEntity.UserName.Trim());
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return View(patientViewModel);
            }
            ViewBag.Message = string.Format("Patient '{0} {1} {2}' Created Sucessfully!. An Email is trigged to {3} with credentials to Log in to HealthReunion Patient Portal.",
                patientViewModel.PatientViewEntity.FirstName, patientViewModel.PatientViewEntity.MiddleName, patientViewModel.PatientViewEntity.LastName, patientViewModel.PatientViewEntity.Email);

            patientViewModel.PatientViewEntity = new PatientViewEntity();
            patientViewModel.PatientViewModelGrid = GetPatientsForLoggedInProvider();
            return View(patientViewModel);
        }
 private void SendEmailToProvider(Email emailModel)
 {
     var fromEmailAddress = new PatientRepository().GetEmailAddress(int.Parse(Session["PatientId"].ToString()));
     var smptSendGrid = new SMTPApi(fromEmailAddress, new List<string>{ emailModel.Providers.SelectedItemId });
     smptSendGrid.SimpleEmail(emailModel.Subject, emailModel.MessageBody);
 }
 public void Init()
 {
     instance = new SMTPApi();
 }
예제 #8
0
 public EmailSender(string apikey)
 {
     Configuration.Default.ApiKey.Add("api-key", apikey);
     this.apiInstance = new SMTPApi();
 }