public Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); var msg = this.BuildMailMessage(message); using (var client = context.ToSmtpClient()) { return(client.SendMailAsync(msg)); } }
public void SendEmail(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); var msg = this.BuildMailMessage(message); using (var client = context.ToSmtpClient()) { client.Send(msg); } }
public void SendEmail(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); using (var msg = this.BuildMailMessage(message)) { using (var client = context.ToSmtpClient()) { client.Send(msg); } } }
public void SendEmail(SmtpContext context, EmailMessage message) { Guard.NotNull(context, nameof(context)); Guard.NotNull(message, nameof(message)); using (var msg = this.BuildMailMessage(message)) { using (var client = context.ToSmtpClient()) { client.Send(msg); } } }
public Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); var client = context.ToSmtpClient(); var msg = this.BuildMailMessage(message); return client.SendMailAsync(msg).ContinueWith(t => { client.Dispose(); msg.Dispose(); }); }
public async Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.NotNull(context, nameof(context)); Guard.NotNull(message, nameof(message)); using (var msg = this.BuildMailMessage(message)) { using (var client = context.ToSmtpClient()) { ApplySettings(client); await client.SendMailAsync(msg); } } }
/// <summary> /// Executes a task /// </summary> public void Execute(TaskExecutionContext ctx) { var maxTries = 3; var queuedEmails = _queuedEmailService.SearchEmails(null, null, null, null, true, maxTries, false, 0, 10000); foreach (var qe in queuedEmails) { var bcc = String.IsNullOrWhiteSpace(qe.Bcc) ? null : qe.Bcc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var cc = String.IsNullOrWhiteSpace(qe.CC) ? null : qe.CC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); try { var smtpContext = new SmtpContext(qe.EmailAccount); var msg = new EmailMessage( new EmailAddress(qe.To, qe.ToName), qe.Subject, qe.Body, new EmailAddress(qe.From, qe.FromName)); if (qe.ReplyTo.HasValue()) { msg.ReplyTo.Add(new EmailAddress(qe.ReplyTo, qe.ReplyToName)); } if (cc != null) msg.Cc.AddRange(cc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); if (bcc != null) msg.Bcc.AddRange(bcc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); _emailSender.SendEmail(smtpContext, msg); qe.SentOnUtc = DateTime.UtcNow; } catch (Exception exc) { Logger.Error(string.Format("Error sending e-mail: {0}", exc.Message), exc); } finally { qe.SentTries = qe.SentTries + 1; _queuedEmailService.UpdateQueuedEmail(qe); } } }
public Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); var client = context.ToSmtpClient(); var msg = this.BuildMailMessage(message); return(client.SendMailAsync(msg).ContinueWith(t => { client.Dispose(); msg.Dispose(); })); }
public Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.NotNull(context, nameof(context)); Guard.NotNull(message, nameof(message)); var client = context.ToSmtpClient(); ApplySettings(client); var msg = this.BuildMailMessage(message); return(client.SendMailAsync(msg).ContinueWith(t => { client.Dispose(); msg.Dispose(); })); }
private void SendCompletionEmail(DataImporterContext ctx) { var emailAccount = _emailAccountService.Value.GetDefaultEmailAccount(); var smtpContext = new SmtpContext(emailAccount); var message = new EmailMessage(); var store = _services.StoreContext.CurrentStore; var storeInfo = "{0} ({1})".FormatInvariant(store.Name, store.Url); var intro = _services.Localization.GetResource("Admin.DataExchange.Import.CompletedEmail.Body").FormatInvariant(storeInfo); var body = new StringBuilder(intro); var result = ctx.ExecuteContext.Result; if (result.LastError.HasValue()) { body.AppendFormat("<p style=\"color: #B94A48;\">{0}</p>", result.LastError); } body.Append("<p>"); body.AppendFormat("<div>{0}: {1} · {2}: {3}</div>", T("Admin.Common.TotalRows"), result.TotalRecords, T("Admin.Common.Skipped"), result.SkippedRecords); body.AppendFormat("<div>{0}: {1} · {2}: {3}</div>", T("Admin.Common.NewRecords"), result.NewRecords, T("Admin.Common.Updated"), result.ModifiedRecords); body.AppendFormat("<div>{0}: {1} · {2}: {3}</div>", T("Admin.Common.Errors"), result.Errors, T("Admin.Common.Warnings"), result.Warnings); body.Append("</p>"); message.From = new EmailAddress(emailAccount.Email, emailAccount.DisplayName); if (_contactDataSettings.Value.WebmasterEmailAddress.HasValue()) message.To.Add(new EmailAddress(_contactDataSettings.Value.WebmasterEmailAddress)); if (message.To.Count == 0 && _contactDataSettings.Value.CompanyEmailAddress.HasValue()) message.To.Add(new EmailAddress(_contactDataSettings.Value.CompanyEmailAddress)); if (message.To.Count == 0) message.To.Add(new EmailAddress(emailAccount.Email, emailAccount.DisplayName)); message.Subject = T("Admin.DataExchange.Import.CompletedEmail.Subject").Text.FormatInvariant(ctx.Request.Profile.Name); message.Body = body.ToString(); _emailSender.Value.SendEmail(smtpContext, message); //Core.Infrastructure.EngineContext.Current.Resolve<IQueuedEmailService>().InsertQueuedEmail(new QueuedEmail //{ // From = emailAccount.Email, // FromName = emailAccount.DisplayName, // To = message.To.First().Address, // Subject = message.Subject, // Body = message.Body, // CreatedOnUtc = DateTime.UtcNow, // EmailAccountId = emailAccount.Id, // SendManually = true //}); //_services.DbContext.SaveChanges(); }
public Task SendEmailAsync(SmtpContext context, EmailMessage message) { Guard.ArgumentNotNull(() => context); Guard.ArgumentNotNull(() => message); var msg = this.BuildMailMessage(message); using (var client = context.ToSmtpClient()) { return client.SendMailAsync(msg); } }
/// <summary> /// Sends a queued email /// </summary> /// <param name="queuedEmail">Queued email</param> /// <returns>Whether the operation succeeded</returns> public virtual bool SendEmail(QueuedEmail queuedEmail) { var result = false; try { var bcc = String.IsNullOrWhiteSpace(queuedEmail.Bcc) ? null : queuedEmail.Bcc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var cc = String.IsNullOrWhiteSpace(queuedEmail.CC) ? null : queuedEmail.CC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var smtpContext = new SmtpContext(queuedEmail.EmailAccount); var msg = new EmailMessage( new EmailAddress(queuedEmail.To, queuedEmail.ToName), queuedEmail.Subject, queuedEmail.Body, new EmailAddress(queuedEmail.From, queuedEmail.FromName)); if (queuedEmail.ReplyTo.HasValue()) { msg.ReplyTo.Add(new EmailAddress(queuedEmail.ReplyTo, queuedEmail.ReplyToName)); } if (cc != null) { msg.Cc.AddRange(cc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); } if (bcc != null) { msg.Bcc.AddRange(bcc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); } _emailSender.SendEmail(smtpContext, msg); queuedEmail.SentOnUtc = DateTime.UtcNow; result = true; } catch (Exception exc) { _logger.Error(string.Concat(_localizationService.GetResource("Admin.Common.ErrorSendingEmail"), ": ", exc.Message), exc); } finally { queuedEmail.SentTries = queuedEmail.SentTries + 1; UpdateQueuedEmail(queuedEmail); } return result; }
private void SendCompletionEmail(DataExporterContext ctx, string zipPath) { var emailAccount = _emailAccountService.Value.GetEmailAccountById(ctx.Request.Profile.EmailAccountId); if (emailAccount == null) emailAccount = _emailAccountService.Value.GetDefaultEmailAccount(); var downloadUrl = "{0}Admin/Export/DownloadExportFile/{1}?name=".FormatInvariant(_services.WebHelper.GetStoreLocation(ctx.Store.SslEnabled), ctx.Request.Profile.Id); var languageId = ctx.Projection.LanguageId ?? 0; var smtpContext = new SmtpContext(emailAccount); var message = new EmailMessage(); var storeInfo = "{0} ({1})".FormatInvariant(ctx.Store.Name, ctx.Store.Url); var intro =_services.Localization.GetResource("Admin.DataExchange.Export.CompletedEmail.Body", languageId).FormatInvariant(storeInfo); var body = new StringBuilder(intro); if (ctx.Result.LastError.HasValue()) { body.AppendFormat("<p style=\"color: #B94A48;\">{0}</p>", ctx.Result.LastError); } if (ctx.IsFileBasedExport && File.Exists(zipPath)) { var fileName = Path.GetFileName(zipPath); body.AppendFormat("<p><a href='{0}{1}' download>{2}</a></p>", downloadUrl, HttpUtility.UrlEncode(fileName), fileName); } if (ctx.IsFileBasedExport && ctx.Result.Files.Any()) { body.Append("<p>"); foreach (var file in ctx.Result.Files) { body.AppendFormat("<div><a href='{0}{1}' download>{2}</a></div>", downloadUrl, HttpUtility.UrlEncode(file.FileName), file.FileName); } body.Append("</p>"); } message.From = new EmailAddress(emailAccount.Email, emailAccount.DisplayName); if (ctx.Request.Profile.CompletedEmailAddresses.HasValue()) message.To.AddRange(ctx.Request.Profile.CompletedEmailAddresses.SplitSafe(",").Where(x => x.IsEmail()).Select(x => new EmailAddress(x))); if (message.To.Count == 0 && _contactDataSettings.Value.CompanyEmailAddress.HasValue()) message.To.Add(new EmailAddress(_contactDataSettings.Value.CompanyEmailAddress)); if (message.To.Count == 0) message.To.Add(new EmailAddress(emailAccount.Email, emailAccount.DisplayName)); message.Subject = _services.Localization.GetResource("Admin.DataExchange.Export.CompletedEmail.Subject", languageId) .FormatInvariant(ctx.Request.Profile.Name); message.Body = body.ToString(); _emailSender.Value.SendEmail(smtpContext, message); //_queuedEmailService.Value.InsertQueuedEmail(new QueuedEmail //{ // From = emailAccount.Email, // FromName = emailAccount.DisplayName, // To = message.To.First().Address, // Subject = message.Subject, // Body = message.Body, // CreatedOnUtc = DateTime.UtcNow, // EmailAccountId = emailAccount.Id, // SendManually = true //}); //_dbContext.SaveChanges(); }
public virtual bool SendEmail(QueuedEmail queuedEmail) { var result = false; try { var smtpContext = new SmtpContext(queuedEmail.EmailAccount); var msg = ConvertEmail(queuedEmail); _emailSender.SendEmail(smtpContext, msg); queuedEmail.SentOnUtc = DateTime.UtcNow; result = true; } catch (Exception exc) { Logger.Error(string.Concat(T("Admin.Common.ErrorSendingEmail"), ": ", exc.Message), exc); } finally { queuedEmail.SentTries = queuedEmail.SentTries + 1; UpdateQueuedEmail(queuedEmail); } return result; }