コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="server"></param>
        /// <param name="emailAddress"></param>
        /// <param name="subject"></param>
        /// <param name="message"></param>
        public void SendEmail(SmtpServer server, string emailAddress, string subject, string message)
        {
            var mimeMessage = new MimeMessage();
            var bodyBuilder = new BodyBuilder();

            AmaraCode.Security sec = new AmaraCode.Security();

            // from
            mimeMessage.From.Add(new MailboxAddress("Admin", server.UserName));
            // to
            mimeMessage.To.Add(new MailboxAddress(emailAddress, emailAddress));
            // reply to
            //message.ReplyTo.Add(new MailboxAddress("reply_name", "*****@*****.**"));

            mimeMessage.Subject  = subject;
            bodyBuilder.HtmlBody = message;
            bodyBuilder.TextBody = message;
            mimeMessage.Body     = bodyBuilder.ToMessageBody();

            var client = new SmtpClient();

            client.ServerCertificateValidationCallback = (s, c, h, e) => true;
            client.Connect(server.Host, server.Port, SecureSocketOptions.Auto);
            client.Authenticate(server.UserName, sec.Decrypt(server.Secret, Statics.EncryptionKey));
            client.Send(mimeMessage);
            client.Disconnect(true);
        }
コード例 #2
0
ファイル: Engine.cs プロジェクト: icodeintx/email-loop
        /// <summary>
        /// This is the command to actuatlly send emails
        /// </summary>
        public void SendEmail()
        {
            //prompt user for setup information
            EmailConfig ec = PromptUserForInput();



            SmtpServer server = Statics.Servers[ec.Server];

            if (server == null)
            {
                Display("Cannot located Server....", true, ConsoleColor.Red);
                PressAnyKey();
            }


            //ask if they really want to send
            //create random 4 digit pin code
            var rnd     = new Random();
            var pin     = rnd.Next(1000, 9999).ToString();
            var userPin = GetUserInput($"\nType the number {pin} to start sending.  \nAny other number will abort sending:", ConsoleColor.White, ConsoleColor.Green);

            if (pin != userPin)
            {
                Display("Send email aborted.", true, ConsoleColor.Red);
                PressAnyKey();
                return;
            }

            try
            {
                //cycle for only the intervals set
                for (int x = 1; x <= ec.Interval; x++)
                {
                    //determin if we are sending to the entire list or just one address
                    if (ec.EmailAddress != "" && ec.EmailAddress != null)
                    {
                        SendEmail(server, ec.EmailAddress, ec.Subject, ec.Message);
                    }
                    else //send to everyone
                    {
                        //cycle through the list and kindly give each person an email.
                        foreach (string email in Statics.Emails)
                        {
                            SendEmail(server, email, ec.Subject, ec.Message);
                        }
                    }

                    //make the system wait so many seconds
                    if (x != ec.Interval)
                    {
                        Thread.Sleep(ec.Delay);
                    }
                }
            }
            catch (Exception ex)
            {
                Display(ex.Message, true, ConsoleColor.Red);
                PressAnyKey();
                return;
            }


            Display("Sending email complete....", true);
            PressAnyKey();
        }
コード例 #3
0
ファイル: Engine.cs プロジェクト: icodeintx/email-loop
 /// <summary>
 /// The method that will actually call the method in the sender class
 /// </summary>
 /// <param name="server"></param>
 /// <param name="emailAddress"></param>
 /// <param name="subject"></param>
 /// <param name="message"></param>
 private void SendEmail(SmtpServer server, string emailAddress, string subject, string message)
 {
     _sender.SendEmail(server, emailAddress, subject, message);
     Statics.Display($"Email sent: {emailAddress}", true);
 }