public ActionResult ProcessJob(Job job) { try { _logger.Info("Launched client e-mail action"); var message = new Email(); message.Subject = job.TokenReplacer.ReplaceTokens(job.Profile.EmailClientSettings.Subject); message.Body = job.TokenReplacer.ReplaceTokens(job.Profile.EmailClientSettings.Content); if (job.Profile.EmailClientSettings.AddSignature) { message.Body += job.JobTranslations.EmailSignature; } var recipients = job.TokenReplacer.ReplaceTokens(job.Profile.EmailClientSettings.Recipients); foreach (var recipient in recipients.Replace(',', ';').Split(';')) { if (!string.IsNullOrWhiteSpace(recipient)) { message.To.Add(recipient.Trim()); } } if (!SkipFileAttachments(job)) { foreach (var file in job.OutputFiles) { message.Attachments.Add(new Attachment(file)); } } _logger.Info("Starting e-mail client"); var mailClient = _emailClientFactory.CreateEmailClient(); if (mailClient == null) { _logger.Error("No compatible e-mail client installed"); return(new ActionResult(ErrorCode.MailClient_NoCompatibleEmailClientInstalled)); } var success = mailClient.ShowEmailClient(message); if (!success) { _logger.Warn("Could not start e-mail client"); return(new ActionResult(ErrorCode.MailClient_GenericError)); } _logger.Info("Done starting e-mail client"); return(new ActionResult()); } catch (Exception ex) { _logger.Error("Exception in e-mail client Action \r\n" + ex.Message); return(new ActionResult(ErrorCode.MailClient_GenericError)); } }
private ActionResult Process(MailInfo mailInfo) { var email = CreateEmail(mailInfo); try { _logger.Info("Launched e-mail client action"); var mailClient = _emailClientFactory.CreateEmailClient(); if (mailClient == null) { _logger.Error("No compatible e-mail client installed"); return(new ActionResult(ErrorCode.MailClient_NoCompatibleEmailClientInstalled)); } var success = mailClient.ShowEmailClient(email); if (!success) { _logger.Warn("Could not start e-mail client"); return(new ActionResult(ErrorCode.MailClient_GenericError)); } _logger.Info("Done starting e-mail client"); return(new ActionResult()); } catch (Exception ex) { _logger.Error(ex, "Exception in e-mail client Action "); return(new ActionResult(ErrorCode.MailClient_GenericError)); } }
public ActionResult Process(string subject, string body, bool isHtml, bool hasSignature, string signature, string recipientsTo, string recipientsCc, string recipientsBcc, bool hasAttachments, IEnumerable <string> attachedFiles) { try { _logger.Info("Launched client e-mail action"); var message = new Email(); message.Subject = subject; message.Body = body; message.Html = isHtml; if (hasSignature) { message.Body += isHtml ? signature.Replace(Environment.NewLine, "<br>") : signature; } message.Recipients.AddTo(recipientsTo); message.Recipients.AddCc(recipientsCc); message.Recipients.AddBcc(recipientsBcc); if (hasAttachments) { foreach (var file in attachedFiles) { message.Attachments.Add(new Attachment(file)); } } _logger.Info("Starting e-mail client"); var mailClient = _emailClientFactory.CreateEmailClient(); if (mailClient == null) { _logger.Error("No compatible e-mail client installed"); return(new ActionResult(ErrorCode.MailClient_NoCompatibleEmailClientInstalled)); } var success = mailClient.ShowEmailClient(message); if (!success) { _logger.Warn("Could not start e-mail client"); return(new ActionResult(ErrorCode.MailClient_GenericError)); } _logger.Info("Done starting e-mail client"); return(new ActionResult()); } catch (Exception ex) { _logger.Error("Exception in e-mail client Action \r\n" + ex.Message); return(new ActionResult(ErrorCode.MailClient_GenericError)); } }
/// <summary> /// Sends e-mail message <paramref name="emailMessage"/>. /// </summary> /// <param name="emailMessage">E-mail message.</param> /// <param name="ignoreRights">Flag that indicates whether to ignore rights.</param> public virtual void Send(EmailMessage emailMessage, bool ignoreRights = false) { SynchronizationErrorHelper helper = SynchronizationErrorHelper.GetInstance(_userConnection); try { IEmailClient emailClient = _emailClientFactory .CreateEmailClient(emailMessage.From.ExtractEmailAddress(), ignoreRights); emailClient.Send(emailMessage, ignoreRights); ClearSyncError(helper, emailClient, emailMessage.From); } catch (Exception ex) { helper.ProcessSynchronizationError(emailMessage.From, ex); throw; } }
public void CheckEmailClientInstalled_ClientCannotBeCreated_ReturnsFalse() { _emailClientFactory.CreateEmailClient().Returns(x => null); var action = BuildAction(); Assert.IsFalse(action.CheckEmailClientInstalled()); }
public ActionResult ProcessJob(IJob job) { try { _logger.Info("Launched client e-mail action"); var message = new Email(); message.Subject = job.TokenReplacer.ReplaceTokens(job.Profile.EmailClient.Subject); message.Body = job.TokenReplacer.ReplaceTokens(job.Profile.EmailClient.Content); if (job.Profile.EmailClient.AddSignature) { message.Body += _signatureText; } foreach (string recipient in job.Profile.EmailClient.Recipients.Replace(',', ';').Split(';')) { if (!string.IsNullOrWhiteSpace(recipient)) { message.To.Add(recipient.Trim()); } } foreach (string file in job.OutputFiles) { message.Attachments.Add(new Attachment(file)); } _logger.Info("Starting e-mail client"); var mailClient = _emailClientFactory.CreateEmailClient(); if (mailClient == null) { _logger.Error("No compatible e-mail client installed"); return(new ActionResult(ActionId, 101)); } bool success = mailClient.ShowEmailClient(message); if (!success) { _logger.Warn("Could not start e-mail client"); return(new ActionResult(ActionId, 100)); } _logger.Info("Done starting e-mail client"); return(new ActionResult()); } catch (Exception ex) { _logger.Error("Exception in e-mail client Action \r\n" + ex.Message); return(new ActionResult(ActionId, 999)); } }
public void EmailClientAction_NoClientInstalled_ReturnsActionresultWithId101() { _emailClientFactory = Substitute.For <IEmailClientFactory>(); _emailClientFactory.CreateEmailClient().Returns(x => null); var action = BuildAction(); var result = action.ProcessJob(_job); Assert.AreEqual(ErrorCode.MailClient_NoCompatibleEmailClientInstalled, result[0]); }
public bool SendTestEmail(EmailClientSettings clientSettings) { var emailClient = _emailClientFactory.CreateEmailClient(); if (emailClient == null) { return(false); } var eMail = new Email(); var tokenReplacer = _tokenHelper.TokenReplacerWithPlaceHolders; clientSettings.Recipients = tokenReplacer.ReplaceTokens(clientSettings.Recipients); foreach (var recipient in clientSettings.Recipients.Replace(',', ';').Split(';')) { if (!string.IsNullOrWhiteSpace(recipient)) { eMail.To.Add(recipient.Trim()); } } eMail.Subject = tokenReplacer.ReplaceTokens(clientSettings.Subject); eMail.Html = clientSettings.Html; eMail.Body = tokenReplacer.ReplaceTokens(clientSettings.Content); if (clientSettings.AddSignature) { var signature = _mailSignatureHelper.ComposeMailSignature(); if (clientSettings.Html) { signature = signature.Replace(Environment.NewLine, "<br/>"); } eMail.Body += signature; } try { var tempFolder = _path.GetTempPath(); var tmpTestFolder = _pathSafe.Combine(tempFolder, "PDFCreator-Test\\SendSmtpTestmail"); _directory.CreateDirectory(tmpTestFolder); var tmpFile = _pathSafe.Combine(tmpTestFolder, "PDFCreator Mail Client Test.pdf"); _file.WriteAllText(tmpFile, ""); eMail.Attachments.Add(new Attachment(tmpFile)); emailClient.ShowEmailClient(eMail); } catch (Exception ex) { _logger.Warn(ex, "Exception while creating mail"); return(false); } return(true); }
public void Setup() { _pathWrap = Substitute.For <IPath>(); _directoryWrap = Substitute.For <IDirectory>(); _fileWrap = Substitute.For <IFile>(); _emailClient = Substitute.For <IEmailClient>(); _emailClientFactory = Substitute.For <IEmailClientFactory>(); _emailClientFactory.CreateEmailClient().Returns(_emailClient); _mailSignatureHelper = Substitute.For <IMailSignatureHelper>(); _clientTestEmail = new ClientTestEmail(_emailClientFactory, _mailSignatureHelper, _pathWrap, _directoryWrap, _fileWrap); _emailClientSettings = new EmailClientSettings(); }
public void SendTestMail_EmailClientFactoryReturnsNull_ReturnsFalse() { _emailClientFactory.CreateEmailClient().ReturnsNull(); Assert.IsFalse(_clientTestEmail.SendTestEmail(_emailClientSettings)); }