Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            IEmailProvider         ep = new SmtpEmailProvider("smtp.qq.com", 25, new NetworkCredential("570678569", "q284655"));
            IEmailTemplateEngine   tn = new DotLiquidEmailTemplateEngine();
            IDeliveryConfiguration dc = new DeliveryConfiguration();

            DeliveryService service = new DeliveryService(ep, dc);

            var tos = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**"
            };
            var message = tn.CreateTextEmail("用户{{ UserName }}兑换了 aa,请及时处理!", new { UserName = "******", From = "*****@*****.**", To = "*****@*****.**", Subject = "邮件主题" });

            message.Cc = tos;
            ep.Send(message);

            service.Start();

            service.Send(message);

            Console.WriteLine("success ");
            Console.Read();
            service.Stop();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Register the components with the DI container
        /// </summary>
        public static IContainer RegisterComponents()
        {
            // TODO: will make sense to split this up into different methods
            var builder = new ContainerBuilder();

            // important to register the Web API controllers, otherwise DI will not work.
            builder.RegisterApiControllers(typeof(Program).Assembly);

            EmailProvider emailer = new SmtpEmailProvider(LogManager.GetLogger(typeof(EmailProvider)));

            builder.RegisterInstance(emailer);

            DaoFactory factory = new DaoFactory();

            factory.RegisterDao <IServiceAppDao, ServiceAppDao>();
            factory.RegisterDao <ISystemDao, SystemDao>();
            builder.RegisterInstance(factory).As <IDaoFactory>();

            //// Factories
            builder.RegisterType <ProcessWrapperFactory>()
            .As <IProcessWrapperFactory>();

            builder.RegisterType <ServiceAppProcessWrapperFactory>()
            .As <IServiceAppProcessFactory>();
            //// ---------

            //// Single Instance Components
            builder.RegisterType <ServiceAppSchedulingService>()
            .As <IServiceAppSchedulingService>()
            .SingleInstance();

            builder.RegisterType <AppManager>()
            .As <IAppManager>()
            .SingleInstance();

            builder.RegisterType <SystemMonitor>()
            .SingleInstance();

            builder.RegisterType <WebAPIComponent>()
            .SingleInstance();
            //// ---------

            //// The object graph base
            builder.RegisterType <ServiceContainer>()
            .InstancePerLifetimeScope();
            //// ======

            return(builder.Build());
        }
Ejemplo n.º 3
0
        public Task <bool> SendAsync(EmailMessage message)
        {
            var smtpMessage = SmtpEmailProvider.BuildMessageAndViews(message, out var textView, out var htmlView);

            try
            {
                _client().Send(smtpMessage);
                return(Task.FromResult(true));
            }
            catch
            {
                return(Task.FromResult(false));
            }
            finally
            {
                htmlView?.Dispose();
                textView?.Dispose();
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="EmailService"/> class.
 /// </summary>
 /// <param name="logger">The logger.</param>
 /// <param name="smtpEmailProvider">The SMTP email provider.</param>
 public EmailService(ILogger <EmailService> logger, IOptions <SmtpEmailProvider> smtpEmailProvider)
 {
     _logger            = logger;
     _smtpEmailProvider = smtpEmailProvider.Value;
 }