Ejemplo n.º 1
0
        public void Send(string content)
        {
            _smtpClient = new SmtpClient(Address, Port);
            _smtpClient.Credentials = new NetworkCredential(Account, Password);
            _smtpClient.EnableSsl = false;
            MailMessage mailMessage = new MailMessage();
            mailMessage.BodyEncoding = Encoding.UTF8;
            mailMessage.From = new MailAddress(From, SenderName, Encoding.UTF8);
            mailMessage.To.Add(To);
            mailMessage.Body = content;
            mailMessage.Subject = Subject;
            _smtpClient.Send(mailMessage);


            dynamic email = new Email("Example");
            email.To = "*****@*****.**";
            email.Send();


            var viewsPath = Path.GetFullPath(@"..\..\Views");

            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var service = new EmailService(engines);
            dynamic email = new Email("Test");

            // Will look for Test.cshtml or Test.vbhtml in Views directory.
            email.Message = "Hello, non-asp.net world!";
            service.Send(email);
           // RESTORE DATABASE is terminating abnormally.
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        public void CheckInactive()
        {
            var userDb = new ApplicationDbContext();

            var lastDate     = DateTime.Today.AddDays(-180);
            var approvedDate = DateTime.Today.AddDays(14);

            // alle die sich 180 Tage nicht angemeldet haben
            // und die noch noch nicht benachrichtigt wurden
            // d.h. kein Approved-Datum haben
            // (das ist das Datum, an dem sie abgeschaltet werden)
            // nur Studenten
            var inactiveUsers = userDb.Users.Where(x =>
                                                   x.LastLogin.HasValue && x.LastLogin.Value < lastDate &&
                                                   !x.Approved.HasValue && x.MemberState == MemberState.Student).ToList();

            var email = new InactivityReportEmail()
            {
                To    = "*****@*****.**",
                Count = inactiveUsers.Count
            };


            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();
            var engine    = new FileSystemRazorViewEngine(viewsPath);

            engines.Add(engine);
            var emailService = new Postal.EmailService(engines);

            // Rendern und senden
            emailService.Send(email);
        }
Ejemplo n.º 3
0
        public static void NotifyNewComment(int commentId)
        {
            var currentCultureName = Thread.CurrentThread.CurrentCulture.Name;
            if (currentCultureName != "es-ES")
            {
                throw new InvalidOperationException(String.Format("Current culture is {0}", currentCultureName));
            }

            // Prepare Postal classes to work outside of ASP.NET request
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var emailService = new EmailService(engines);

            // Get comment and send a notification.
            using (var db = new MailerDbContext())
            {
                var comment = db.Comments.Find(commentId);

                var email = new NewCommentEmail
                {
                    To = "*****@*****.**",
                    UserName = comment.UserName,
                    Comment = comment.Text
                };

                emailService.Send(email);
            }
        }
Ejemplo n.º 4
0
        static void Main()
        {
            var engines = new ViewEngineCollection
                          {
                              new ResourceRazorViewEngine(typeof(Program).Assembly, @"ResourceSample.Resources.Views")
                          };

            var service = new EmailService(engines);

            dynamic email = new Email("Test");
            email.Message = "Hello, non-asp.net world!";
            service.Send(email);
        }
Ejemplo n.º 5
0
        // Sending email using postal.mvc5 package
        public void SendEmail(IEnumerable<FileDetail> fileList)
        {
            var viewsPath = Path.GetFullPath(@"..\..\Views\Emails");

            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var service = new EmailService(engines);

            dynamic email = new Email("FtpFiles");
            email.To = _emailRecipients;
            // Will look for Test.cshtml or Test.vbhtml in Views directory.
            email.Message = "Hello, non-asp.net world!";
            email.FileList = fileList;
            service.Send(email);
        }
Ejemplo n.º 6
0
        public static void Send()
        {
            var viewsPath = Path.GetFullPath(@"..\..\Views\Emails");

            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var service = new EmailService(engines);

            MyEmail email = new MyEmail() { ViewName = "Test" };

            email.From = "*****@*****.**";
            email.To = "*****@*****.**";
            // Will look for Test.cshtml or Test.vbhtml in Views directory.
            //email.Message = "Hello, non-asp.net world!";
            service.Send(email);
        }
        public static void Notify(string to, string subject, string callbackUrl, int timeLeft)
        {
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();

            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var emailService = new Postal.EmailService(engines);
            var email        = new ReportCommentNotifyEmail
            {
                To          = to,
                Subject     = subject,
                CallbackUrl = callbackUrl,
                TimeLeft    = timeLeft
            };

            emailService.Send(email);
        }
Ejemplo n.º 8
0
        public void SendMail(string to, string subject, string callbackUrl, string faculty)
        {
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();

            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var emailService = new Postal.EmailService(engines);

            var email = new FacultyAssignEmail
            {
                To          = to,
                Subject     = subject,
                CallbackUrl = callbackUrl,
                FacultyInfo = faculty
            };

            emailService.Send(email);
        }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            // Get the path to the directory containing views
            var viewsPath = Path.GetFullPath(@"..\..\Views");

            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));

            var service = new EmailService(engines);

            dynamic email = new Email("Test");
            email.Message = "Hello, non-asp.net world!";
            service.Send(email);

            // Alternatively, set the service factory like this:
            /*
            Email.CreateEmailService = () => new EmailService(engines);

            dynamic email = new Email("Test");
            email.Message = "Hello, non-asp.net world!";
            email.Send();
            */
        }
Ejemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="receiverList"></param>
        /// <param name="sender"></param>
        /// <param name="model"></param>
        public void SendMail(ICollection <ApplicationUser> receiverList, ApplicationUser sender, MailJobModel model)
        {
            var viewsPath = Path.GetFullPath(HostingEnvironment.MapPath(@"~/Views/Emails"));
            var engines   = new ViewEngineCollection();
            var engine    = new FileSystemRazorViewEngine(viewsPath);

            engines.Add(engine);
            var emailService = new Postal.EmailService(engines);


            // Das Mail-Model aufbauen
            var mailModel = new CustomBodyEmail()
            {
                From               = sender.Email,
                Subject            = model.Subject,
                Body               = model.Body,
                IsImportant        = model.IsImportant,
                IsDistributionList = model.IsDistributionList,
                ListName           = model.ListName
            };

            foreach (var attachment in model.Files)
            {
                MemoryStream ms = new MemoryStream(attachment.Bytes);

                var a = new System.Net.Mail.Attachment(ms, attachment.FileName);

                mailModel.Attachments.Add(a);
            }


            // 1 Mail für jeden
            var deliveryModel = new MailDeliverSummaryReportModel();
            var errorCount    = 0;

            foreach (var user in receiverList)
            {
                // Mails werden nur versendet, wenn die Mail Adresse bestätigt ist
                if (!user.EmailConfirmed)
                {
                    // In den Bericht aufnehmen
                    errorCount++;
                    deliveryModel.Deliveries.Add(new MailDeliveryReportModel
                    {
                        User = user,
                        DeliverySuccessful = false,
                        ErrorMessage       = "Mailadresse nicht bestätigt. Grund: " + user.AccountErrorMessage
                    });
                }
                else
                {
                    // hier erst auf Like E-Mail überprüfen
                    // wenn die E-Mail unwichtig ist und der benutzer keine E-Mail erhalten möchte
                    // dann bekommt er auch keine - es wird aber im Versandprotokoll vermerkt
                    if (!model.IsImportant && !user.LikeEMails)
                    {
                        errorCount++;
                        deliveryModel.Deliveries.Add(new MailDeliveryReportModel
                        {
                            User = user,
                            DeliverySuccessful = false,
                            ErrorMessage       = "Benutzer möchte keine E-Mails erhalten"
                        });
                    }
                    else
                    {
                        mailModel.To = user.Email;

                        // Versand versuchen
                        try
                        {
                            emailService.Send(mailModel);

                            deliveryModel.Deliveries.Add(new MailDeliveryReportModel
                            {
                                User = user,
                                DeliverySuccessful = true,
                            });
                        }
                        catch (Exception ex)
                        {
                            errorCount++;
                            var strError = string.Format("Fehler bei Versand. Grund: {0}. Mailadresse wird auf ungültig gesetzt.", ex.Message);

                            deliveryModel.Deliveries.Add(new MailDeliveryReportModel
                            {
                                User = user,
                                DeliverySuccessful = false,
                                ErrorMessage       = strError
                            });

                            /*
                             * user.EmailConfirmed = false;
                             * // Ein Expiry ist nicht sinnvoll / möglich, da E-Mail Adresse ja ohnehin nicht erreichbar
                             * user.Remark = strError;
                             * user.Submitted = DateTime.Now;
                             * UserManager.Update(user);
                             */
                        }
                    }
                }
            }

            // Kopie an Absender
            mailModel.To = sender.Email;

            // Versandbericht nur an Staff
            if (sender.MemberState == MemberState.Staff)
            {
                var ms     = new MemoryStream();
                var writer = new StreamWriter(ms, Encoding.Default);

                writer.Write(
                    "Name;Vorname;E-Mail;Versand;Bemerkung");

                writer.Write(Environment.NewLine);

                foreach (var delivery in deliveryModel.Deliveries)
                {
                    writer.Write("{0};{1};{2};{3};{4}",
                                 delivery.User.LastName, delivery.User.FirstName, delivery.User.Email,
                                 delivery.DeliverySuccessful ? "OK" : "FEHLER",
                                 delivery.ErrorMessage);
                    writer.Write(Environment.NewLine);
                }

                writer.Flush();
                writer.Dispose();

                var sb = new StringBuilder();
                sb.Append("Versandbericht");
                sb.Append(".csv");

                var bytes = ms.GetBuffer();
                var ms2   = new MemoryStream(bytes);

                var a = new System.Net.Mail.Attachment(ms2, sb.ToString());

                mailModel.Attachments.Add(a);
            }

            try
            {
                emailService.Send(mailModel);
            }
            finally { }
        }
Ejemplo n.º 11
0
        static void Main(string[] args)
        {
            bool quietMode = false;
            foreach (var arg in args)
            {
                if (arg.ToUpperInvariant().Contains("Q")) quietMode = true;
            }

            try
            {

                Console.WriteLine("Program starting" + (quietMode ? " in quiet mode" : "") + "....");
                DateTime lastDate = DateTime.Now.AddDays(-Convert.ToInt32(ConfigurationManager.AppSettings["days"]));
                var storedDate = DataAccess.GetKeyValue("lastemail").Value;
                if (!string.IsNullOrEmpty(storedDate))
                {
                    lastDate = Convert.ToDateTime(storedDate);
                }
                Console.WriteLine("Last Run: {0:M/d/yyyy h:mm tt}", lastDate);
                Console.WriteLine("Looking for verses....");
                var verses = DataAccess.GetRecentVerses(lastDate);
                Console.WriteLine("Looking for terms....");
                var terms = DataAccess.GetRecentTerms(lastDate);
                Console.WriteLine("Looking for files....");
                var files = FileUtility.Recent(lastDate);
                Console.WriteLine("Looking for email addresses....");
                var emails = DataAccess.GetEmails();

                verses = (verses != null ? verses.Take(50) : new List<ScriptureItem>());
                terms = (terms != null ? terms.Take(50) : new List<GlossaryItem>());
                files = (files != null ? files.Take(50) : new List<FileInfoResult>());

                bool sendEmail = ((verses.Count() > 0 || terms.Count() > 0 || files.Count() > 0) && emails != null && emails.Count() > 0);

                if (!sendEmail)
                {
                    Console.WriteLine();
                    if (!quietMode)
                    {
                        Console.WriteLine("Nothing new. Not sending email. Press any key to exit.");
                        Console.Read();
                    }
                    else
                    {
                        Console.WriteLine("Nothing new. Not sending email.");
                    }
                    Environment.Exit(0);
                }

                Console.WriteLine("Preparing email....");
                var viewsPath = ConfigurationManager.AppSettings["TemplatePath"];

                var engines = new ViewEngineCollection();
                var razorEngine = new FileSystemRazorViewEngine(viewsPath);
                engines.Add(razorEngine);

                var service = new EmailService(engines);

                NotifyEmail email = new NotifyEmail("Notification");
                var webroot = ConfigurationManager.AppSettings["AbsoluteRoot"];
                email.AbsoluteRoot = webroot.EndsWith("/") ? webroot.Substring(0, webroot.Length - 1) : webroot;
                email.To = string.Join(", ", emails.Select(x=>x.Email).ToArray());
                email.Verses = verses;
                email.Terms = terms;
                email.Files = files;

                bool withAttachments = false;
                if (files != null)
                {
                    long limit = Convert.ToInt64(ConfigurationManager.AppSettings["AttachmentLimitInMB"]) * 1000 * 1024;
                    if (files.Sum(x => x.Length) <= limit)
                    {
                        withAttachments = true;
                        foreach (var file in files)
                        {
                            var root = ConfigurationManager.AppSettings["FilesRoot"];
                            if (root.EndsWith("/")) root = root.Remove(root.Length - 1);
                            var fullName = file.Path.Replace("/", @"\");
                            if (!fullName.StartsWith(@"\")) fullName = @"\" + fullName;
                            fullName = root + fullName;

                            email.Attach(new Attachment(fullName));
                        }
                    }
                }
                email.HasAttachments = withAttachments;
                service.Send(email);

                var newDate = DateTime.Now.ToString("M/d/yyyy h:mm tt");
                DataAccess.UpdateKeyValue("lastemail", newDate);

                Console.WriteLine();
                Console.WriteLine("Sent an email to {0} addresses with {1} verses, {2} terms, {3} files ({4}) and updated the date for next time.", emails.Count(), verses.Count(), terms.Count(), files.Count(), withAttachments ? "with attachments" : "no attachments");

                Console.WriteLine();
                if (!quietMode)
                {
                    Console.WriteLine("Press any key to exit.");
                    Console.Read();
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                if (!quietMode)
                {
                    Console.WriteLine("Press any key to exit.");
                    Console.Read();
                }
            }
        }
Ejemplo n.º 12
0
        //http://aboutcode.net/postal/outside-aspnet.html
        //http://aboutcode.net/postal/multi-part.html
        //http://aboutcode.net/postal/
        public void SendPostalEmail(EmailAccount emailAccount, BasePostalMail mail, 
            IEnumerable<MailAttachment> attachments = null)
        {
            // Get the path to the directory containing views
            var viewsPath = CommonHelper.PostalViewPath;
           viewsPath = Path.GetFullPath(viewsPath);
            dynamic _mail = mail;
           
            var engines = new ViewEngineCollection();
            engines.Add(new FileSystemRazorViewEngine(viewsPath));
            using (var smtpClient = new SmtpClient())
            {
                smtpClient.UseDefaultCredentials = emailAccount.UseDefaultCredentials;
                smtpClient.Host = emailAccount.Host;
                smtpClient.Port = emailAccount.Port;
                smtpClient.EnableSsl = emailAccount.EnableSsl;
                if (emailAccount.UseDefaultCredentials)
                    smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials;
                else
                    smtpClient.Credentials = new NetworkCredential(emailAccount.Username, emailAccount.Password);

                var service = new EmailService(engines, () => smtpClient);
                if (attachments != null)
                {
                    if (attachments.Count() > 0)
                    {
                        foreach (MailAttachment s in attachments)
                        {
                            mail.Attach(new Attachment(s.FileStream, s.Name, s.ContentType.MediaType));
                        }
                    }
                }
              


                service.Send(mail);


            }
          
          
          
        }
Ejemplo n.º 13
0
 public void Send()
 {
     emaiService.Send(this);
 }