public HtmlSmtpTarget() { PreTriggerMessages = 16; EventBacklog = 8192; MaximumEventsPerMessage = 1024; HolddownPeriod = new TimeSpan(0, 15, 0); _triggerLevel = LogLevel.Warn; Subject = new SimpleLayout( "[${machinename}] ${processname} ${event-properties:item=TriggerEvents} of ${event-properties:item=TotalEvents} " + "[${event-properties:item=GroupAlertEvents},${event-properties:item=GroupWarnEvents},${event-properties:item=GroupInfoEvents} ,${event-properties:item=GroupDevEvents}]" + " (${event-properties:item=LostEvents} lost)" + "${var:name=htmlsmtp.subject.suffix}"); From = $"NLog <htmlsmtp@{Dns.GetHostName()}>"; Transport = new SimpleLayout(SmtpClientFactory.MakeDefaultTransport()); Message = new SimpleLayout("${message}"); Timestamp = new SimpleLayout("${longdate}"); Context = new SimpleLayout("${mdlc:item=id}"); Exception = new SimpleLayout("${exception:format=Message,ToString}"); // Level = new SimpleLayout(@"<img style=""image-{$Level}"" alt=""${Level}"" title=""${Level}"" />"); Level = new SimpleLayout(@"${level}"); _mailTemplate = MakeTemplate(); Handlebars.RegisterHelper("layout", LayoutHelper); _cancelTokenSource = new CancellationTokenSource(); _worker = new Thread(Worker) { Name = "HTML SMTP Logger", IsBackground = true, }; }
public FrameworkRegistry(IBootstrapperConfiguration settings) { Scan(scanner => { scanner.AssemblyContainingType(typeof(FluentValidation.AbstractValidator <>)); scanner.AssemblyContainingType(typeof(BaseResponse)); scanner.AssemblyContainingType(typeof(IRequestHandler <,>)); scanner.AddAllTypesOf(typeof(FluentValidation.IValidator <>)); scanner.AddAllTypesOf(typeof(IRequestHandler <,>)); scanner.AddAllTypesOf(typeof(IRootRequestHandler <,>)); scanner.AddAllTypesOf(typeof(IEventHandler <>)); scanner.WithDefaultConventions(); }); For <IBootstrapperConfiguration>().Use(settings); // Messaging For <IRequestDispatcher>().Use(ctx => new RequestDispatcher(type => ctx.GetInstance(type))); For <IEventDispatcher>().Use(ctx => new EventDispatcher(type => ctx.GetAllInstances(type))); For(typeof(IRootRequestHandler <,>)).Use(typeof(RootRequestHandler <,>)); // Register default handler. // Decorate request handlers behaviour. var types = For(typeof(IRootRequestHandler <,>)); types.DecorateAllWith(typeof(AppServices.Decorators.ValidatorHandler <,>)); // End Messaging For <IFileClient>().Use(ctx => new LocalFileClient(settings.Storage_RootPath, settings.Storage_BaseUrl)); For <ILogger>().Use(ctx => new ConsoleLogger()); For <SmtpClient>().Use(() => SmtpClientFactory.CreateSmtpClient(settings)); }
public void TestSimpleSmtps() { var match = SmtpClientFactory.MatchConfig("smtps://smtp.domain.com"); Assert.IsTrue(match.Success); Assert.AreEqual("smtps", match.GetSingletonCapture("scheme")); }
public void TestSimpleFilePath() { var match = SmtpClientFactory.MatchConfig("file:/my/mydrop/queue"); Assert.IsTrue(match.Success); Assert.AreEqual("file", match.GetSingletonCapture("scheme")); }
public void TestSimpleFilePath() { var match = SmtpClientFactory.MatchConfig("file:/my/mydrop/queue"); match.Success.ShouldBeTrue(); "file".ShouldEqual(match.GetSingletonCapture("scheme")); }
public void TestSimpleSmtps() { var match = SmtpClientFactory.MatchConfig("smtps://smtp.domain.com"); match.Success.ShouldBeTrue(); "smtps".ShouldEqual(match.GetSingletonCapture("scheme")); }
public void TestEmpty() { var match = SmtpClientFactory.MatchConfig(""); match.ShouldNotBeNull(); match.Success.ShouldBeTrue(); }
public void MakeDefaultTransportString() { var configStr = SmtpClientFactory.MakeDefaultTransport(); configStr.ShouldNotBeNull(); configStr.ShouldContain("smtp", StringComparison.InvariantCultureIgnoreCase); }
private void SendEmail(string subject, string htmlMessageBody) { // Create and configure the smtp client var smtpClient = SmtpClientFactory.ParseConfiguration(Transport); var mailMessage = new MailMessage { From = new MailAddress(From), Subject = subject, }; mailMessage.To.Add(To); mailMessage.BodyEncoding = Encoding.ASCII; var htmlView = AlternateView.CreateAlternateViewFromString( htmlMessageBody, new ContentType("text/html;charset=utf-8")); // Add icons as attachments to the email. LinkedResources.AddAttachmentIffGifFound(htmlView, "fatal", "/image/FatalIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "error", "/image/ErrorIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "warn", "/image/WarnIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "notice", "/image/NoticeIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "info", "/image/InfoIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "debug", "/image/DebugIcon.gif"); LinkedResources.AddAttachmentIffGifFound(htmlView, "trace", "/image/TraceIcon.gif"); mailMessage.AlternateViews.Add(htmlView); if (!string.IsNullOrEmpty(ReplyTo)) { mailMessage.ReplyTo = new MailAddress(ReplyTo); } smtpClient.Send(mailMessage); }
protected override void InitializeClientService() { var smtpClientFactory = new SmtpClientFactory(); var mailMessageFactory = new MailMessageFactory(); _clientService = new EmailClientService(smtpClientFactory, mailMessageFactory) }
/// <summary> /// Добавить FluentEmail. /// </summary> /// <param name="serviceCollection">Коллекция сервисов.</param> /// <param name="settings">Настройки SMTP клиента.</param> public static void AddFluentEmail(this IServiceCollection serviceCollection, SmtpClientSettings settings) { serviceCollection .AddScoped <ISender>(serviceProvider => new SmtpSender(SmtpClientFactory.Create(settings))) .AddScoped <IEmailNotifier, EmailNotifier>() .AddFluentEmail(settings.DefaultEmail) .AddRazorRenderer(); }
public void TestSimpleFile() { var match = SmtpClientFactory.MatchConfig("file:c:\\maildrop\\"); match.Success.ShouldBeTrue(); "file".ShouldEqual(match.GetSingletonCapture("scheme")); @"c:\maildrop\".ShouldEqual(match.GetSingletonCapture("path")); }
/// <summary> /// Конструктор. /// </summary> /// <param name="options"> Параметры. </param> public MailService(MailingOptions options) { Options = options ?? throw new ArgumentNullException(nameof(options), "Не переданы параметры отправки сообщений"); MailTransport = SmtpClientFactory.Create(options); _disposed = false; }
public void TestSimpleFile() { var match = SmtpClientFactory.MatchConfig("file:c:\\maildrop\\"); Assert.IsTrue(match.Success); Assert.AreEqual("file", match.GetSingletonCapture("scheme")); Assert.AreEqual(@"c:\maildrop\", match.GetSingletonCapture("path")); }
public void TestSmtp1() { var match = SmtpClientFactory.MatchConfig("smtp://*****:*****@smtp.domain.com:smtp?authentication=ntlm"); Assert.IsTrue(match.Success); Assert.AreEqual("smtp", match.GetSingletonCapture("scheme")); Assert.AreEqual("smtp.domain.com", match.GetSingletonCapture("host")); Assert.AreEqual("smtp", match.GetSingletonCapture("service")); Assert.AreEqual("uuuu", match.GetSingletonCapture("username")); Assert.AreEqual("pppp", match.GetSingletonCapture("password")); }
public void TestSmtpWithQueryParameters() { var match = SmtpClientFactory.MatchConfig("smtp://*****:*****@smtp.domain.com:smtp?authentication=ntlm"); match.Success.ShouldBeTrue(); "smtp".ShouldEqual(match.GetSingletonCapture("scheme")); "smtp.domain.com".ShouldEqual(match.GetSingletonCapture("host")); "smtp".ShouldEqual(match.GetSingletonCapture("service")); "uuuu".ShouldEqual(match.GetSingletonCapture("username")); "pppp".ShouldEqual(match.GetSingletonCapture("password")); }
public virtual void Process(WorkflowPipelineArgs args) { ScribanMailActionItem actionItem = args.ProcessorItem.InnerItem; var mailTo = actionItem.To; if (string.IsNullOrWhiteSpace(mailTo)) { Log.Error(GetType().FullName + " cannot be invoked with an empty 'To' field.", this); return; } var mailFrom = actionItem.From; if (string.IsNullOrWhiteSpace(mailFrom)) { Log.Error(GetType().FullName + " cannot be invoked with an empty 'From' field.", this); return; } var mailSubject = actionItem.Subject; var mailBody = actionItem.Message; var model = CreateModel(args); try { mailTo = ProcessScribanTemplate(mailTo, model); mailFrom = ProcessScribanTemplate(mailFrom, model); mailSubject = ProcessScribanTemplate(mailSubject, model); mailBody = ProcessScribanTemplate(mailBody, model); } catch (Exception ex) { Log.Error("An error occurred whilst rendering a Scriban template in " + GetType().FullName, ex, this); return; } try { var message = new MailMessage(mailFrom, mailTo, mailSubject, mailBody); message.IsBodyHtml = true; using (var smtpClient = SmtpClientFactory.Invoke()) { smtpClient.Send(message); } } catch (Exception ex) { Log.Error("Exception while sending workflow email", ex, this); args.AbortPipeline(); } }
public Task SendAsync(IdentityMessage identityMessage) { Message messageObject = new Message { Body = identityMessage.Body, To = identityMessage.Destination, Subject = identityMessage.Subject }; var message = EmailSender.GetMailMessage(messageObject); var client = SmtpClientFactory.Create(); return(Task.Run(() => client.Send(message))); }
private static void EmailKuldes(EmailConf ec, string cimzett, string tema, string uzenet) { using (var smtpClient = SmtpClientFactory.GetClient(SmtpClientFactory.ClientType.Gmail, new NetworkCredential(ec.Azonosito, ec.Jelszo), ec.Ssl, "", 0)) { var mailMessage = new MailMessage { From = new MailAddress(ec.KuldoEmailcime, ec.KuldoNeve), IsBodyHtml = true, Body = uzenet, Subject = tema }; mailMessage.To.Add(cimzett); smtpClient.Send(mailMessage); } }
public override void ActivateOptions() { LogLog.Debug(typeof(HtmlSmtpAppender), "HTML SMTP Appender options activated"); base.ActivateOptions(); _queue = (EventBacklog > 0) ? new BlockingCollection <LoggingEvent>(EventBacklog) : new BlockingCollection <LoggingEvent>(); if (Layout == null) { var layout = MakeLayout(); layout.ActivateOptions(); Layout = layout; } if (MaximumEventsPerMessage <= 1) { MaximumEventsPerMessage = 1024; } if (HolddownPeriod.Ticks <= 0) { HolddownPeriod = new TimeSpan(0, 15, 0); } if (Trigger == null) { Trigger = new LevelEvaluator(Level.Warn); } if (Subject == null) { Subject = "Log4net"; } if (string.IsNullOrEmpty(From)) { From = string.Format("log4net <htmlsmtpappender@{0}>", System.Net.Dns.GetHostName()); } if (string.IsNullOrEmpty(Transport)) { Transport = SmtpClientFactory.MakeDefaultTransport(); } if (Fix == FixFlags.None) { Fix = FixFlags.Partial | FixFlags.Ndc; } _worker.Start(); }
public void TestEmpty() { var match = SmtpClientFactory.MatchConfig(""); Assert.IsTrue(match.Success); }
public void SmtpClient(string transportConfig) { var client = SmtpClientFactory.ParseConfiguration(transportConfig); client.ShouldNotBeNull(); }