private MailSendResult SendViaDotnetSmtp(MailMessage message) { MailSendResult sendResult = new MailSendResult(); if (message.From == null || String.IsNullOrEmpty(message.From.Address)) { message.From = new MailAddress(_settingsService.GetSettings <string>("SystemEmailAddress"), _settingsService.GetSettings <string>("SystemEmailSenderName")); } if (AppSettingsHelper.EmailBlindCarbonCopyEnabled) { string bcc = AppSettingsHelper.EmailBlindCarbonCopyAddress; message.Bcc.Add(new MailAddress(bcc)); } using (SmtpClient smtp = new SmtpClient(_settingsService.GetSettings <string>("EmailSmtpUrl"), _settingsService.GetSettings <int>("EmailSmtpPort"))) { smtp.Credentials = new NetworkCredential(_settingsService.GetSettings <string>("EmailLogin"), _settingsService.GetSettings <string>("EmailPassword")); smtp.EnableSsl = _settingsService.GetSettings <bool>("SmtpSslEnabled"); try { smtp.Send(message); //отправка sendResult.Success = true; } catch (Exception e) { _logService.LogError(e); sendResult.Success = false; sendResult.ErrorMsg = e.Message; } } return(sendResult); }
public async Task <MailSendResult> SendMailAsync(MailMessageData emailMessage) { Console.WriteLine($"EmailRabbitMQProcessor SendMailAsync method => Calısma zamanı: {DateTime.Now.ToShortTimeString()}"); MailSendResult result; MailMessage mailMessage = emailMessage.GetMailMessage(); mailMessage.From = new MailAddress(_smtpConfiguration.User); try { using (var client = CreateSmtpClient(_smtpConfiguration.GetSmtpConfig())) { await client.SendMailAsync(mailMessage); string resultMessage = $"donus mesajı metni {string.Join(",", mailMessage.To)}."; result = new MailSendResult(mailMessage, true, resultMessage); Console.WriteLine($"EmailRabbitMQProcessor running => resultMessage to:{ mailMessage.To}"); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } result = new MailSendResult(mailMessage, false, $"Hata: {ex.Message}"); } finally { Thread.Sleep(MailConsts.SendTimeout); } return(result); }
public MailSendResult ReSendMessage(int mailId) { var mail = _mailGateway.SelectOne(mailId); MimeMessage message = MailMsgToMimeMessage(Mapper.Map <MailMsg>(mail)); MailSendResult sendResult = SendViaMailKit(message); mail.Sent = sendResult.Success; mail.ErrorMessage = sendResult.ErrorMsg; _mailGateway.Update(mail); return(sendResult); }
public void Send(MailMsg msg) { var mail = Mapper.Map <RoCMS.Data.Models.Mail>(msg); var message = MailMsgToMimeMessage(msg); mail.MailId = _mailGateway.Insert(mail); MailSendResult sendResult = SendViaMailKit(message); mail.Sent = sendResult.Success; mail.ErrorMessage = sendResult.ErrorMsg; _mailGateway.Update(mail); }
public void MailSendResult_Constructed_Constructs() { // NOTE: The MailSendResult class has been created so // we had something to return from the MailSender, but // hasn't yet been built out, hence the minimal unit test. // Act var result = new MailSendResult(); // Assert Assert.IsType <MailSendResult>(result); }
private MailSendResult SendViaMailKit(MimeMessage message) { MailSendResult sendResult = new MailSendResult(); if (!message.From.Any()) { message.From.Add(new MailboxAddress(_settingsService.GetSettings <string>("SystemEmailSenderName"), _settingsService.GetSettings <string>("SystemEmailAddress"))); } if (AppSettingsHelper.EmailBlindCarbonCopyEnabled) { string bcc = AppSettingsHelper.EmailBlindCarbonCopyAddress; message.Bcc.Add(new MailboxAddress(bcc)); } string host = _settingsService.GetSettings <string>("EmailSmtpUrl"); int port = _settingsService.GetSettings <int>("EmailSmtpPort"); SecureSocketOptions socketSecurityOption = _settingsService.GetSettings <bool>("SmtpSslEnabled") ? SecureSocketOptions.SslOnConnect : SecureSocketOptions.Auto; string username = _settingsService.GetSettings <string>("EmailLogin"); string password = _settingsService.GetSettings <string>("EmailPassword"); try { Task.Run(async() => { using (var smtp = new MailKit.Net.Smtp.SmtpClient()) { await smtp.ConnectAsync(host, port, socketSecurityOption); await smtp.AuthenticateAsync(username, password); await smtp.SendAsync(message); //отправка sendResult.Success = true; await smtp.DisconnectAsync(true); } }).Wait(); } catch (Exception e) { _logService.LogError(e); sendResult.Success = false; sendResult.ErrorMsg = e.Message; } return(sendResult); }
/// <summary> /// Yeni kullanıcı keydetme işlemini yapan metod /// Yapılanlar; /// - Kullanıcı userName, e-posta kontrolleri /// - Kayıt işlemi /// - Aktivasyon email'i yollanması yapılır /// </summary> /// <param name="registerDTO"></param> /// <returns>BLL katmanında Entity kısıtları dışında özel hatalar(aynı isimli kullanıcı kaydetmek istemek gibi) oluşursa bu hataları tutan generic model</returns> public BusinessLayerResult <User> RegisterUser(RegisterDTO registerDTO) { User user = Find(q => q.UserName == registerDTO.UserName || q.Email == registerDTO.Email); BusinessLayerResult <User> layerResult = new BusinessLayerResult <User>(); // Geriye döndürülecek olan generic hata listesini tutan model if (user != null) { // İlgili name-password değerlerinde kullanıcı varsa bu bloğa giriliyor if (user.UserName == registerDTO.UserName) { layerResult.AddError(code: ErrorMessageCode.UserNameAlreadyExist, message: "Kullanıcı Adı Kayıtlı!"); } if (user.Email == registerDTO.Email) { layerResult.AddError(code: ErrorMessageCode.EmailAlreadyExist, message: "Email adı kayıtlı!"); } } else { // Yeni kullaıncıyı kayıt işlemi User newUser = new User { UserName = registerDTO.UserName, Email = registerDTO.Email, Password = registerDTO.Password, Gender = Gender.Woman, ProfileImageFileName = "userWoman.png", IsActive = false, IsAdmin = false, ActivateGuid = Guid.NewGuid() }; int dbResult = base.Insert(newUser); if (dbResult > 0) { layerResult.Result = Find(q => q.UserName == registerDTO.UserName && q.Email == registerDTO.Email && q.Password == registerDTO.Password); // Yollanacak mail'in ayarlanması string activateUrl = $"localhost:49952/User/UserActivate/{layerResult.Result.ActivateGuid}"; MailContent mailContent = new MailContent { From = new MailAddress("YourMailAddress"), ToList = new List <MailAddress> { new MailAddress(layerResult.Result.Email.Trim()) }, Subject = "EveryNote Account Activation", Body = $"Merhaba, {layerResult.Result.UserName}; <br/><br/> Hesabınızı aktifleştirmek için <a href='http://{activateUrl}' target = '_blank'>tıklayıyınız.</a>", IsBodyHtml = true, SmtpConfiguration = new SmtpConfiguration { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, UseDefaultCredentials = false, DeliveryMethod = SmtpDeliveryMethod.Network }, Email = "YourMailAddress", Password = "******" }; // Mail gönderme metodunun çağırılması ve sonucun 'MailSendResult' modeline atanması MailSendResult sendResult = SendFastEmail.EMail.Send(mailContent); } } return(layerResult); }