как отправить электронную почту автоматически

1

Я пытаюсь отправить электронное письмо автоматически с помощью таймера. данный ниже код я использовал для отправки электронной почты. Но он не отвечает. При использовании одного и того же кода при событии нажатия кнопки его работа отлично. Помогите найти правильное решение. Спасибо.

Код:

namespace AlertMail
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            MailMessage loginInfo = new MailMessage();
            string em = "[email protected]";
            loginInfo.To.Add(em.ToString());
            loginInfo.From = new MailAddress("[email protected]");
            loginInfo.Subject = "Alert Information";

            loginInfo.Body = "Hai";
            loginInfo.IsBodyHtml = true;
            SmtpClient smtp = new SmtpClient();
            smtp.Host = "smtp.gmail.com";
            smtp.Port = 587;
            smtp.EnableSsl = true;
            smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "Password");
            smtp.Send(loginInfo);
            label6.Text = "Alert is send to your email..!!";
        }
   }
}
  • 2
    Хорошо, если код работает нормально, возможно, таймер не включен? Вы установили точку останова в событии и убедились, что оно работает? Кроме того, вам не нужно вызывать .ToString() для строки (вы делаете это на em ).
  • 0
    @RufusL Спасибо. Нет его работает, на самом деле таймер отключен, так что он не работает.
Теги:
email
webforms

2 ответа

2

Во многих веб-приложениях нам нужно отправлять расписания (автоматические) электронные письма, и мы планируем их. как:

  1. Отправляет электронные письма на регулярной основе
  2. Отправляйте сообщение ежедневно, еженедельно, ежемесячно или ежегодно.

Для этого мы обычно использовали окна или приложения Windows.

Поскольку мы знаем, что веб-сервер IIS постоянно работает, мы можем добавить таймер в приложение, и таймер может управлять всеми этими действиями

//Inside Global.ascx 
      void Application_Start(object sender, EventArgs e) 
    {
      // Code that runs on application startup
     System.Timers.Timer myTimer = new System.Timers.Timer();
      // Set the Interval to 5 seconds (5000 milliseconds).
     myTimer.Interval = 5000;
     myTimer.AutoReset = true;
     myTimer.Elapsed += new ElapsedEventHandler(myTimer_Elapsed);
     myTimer.Enabled = true; 
     } 

 public void myTimer_Elapsed(object source, System.Timers.ElapsedEventArgs e)
{
     // use your mailer code 
    clsScheduleMail objScheduleMail = new clsScheduleMail();
    objScheduleMail.SendScheduleMail();   
}

// inside your class
public void SendScheduleMail()
{ 
  // Write your send mail code here.
} 
0

Обычно, когда мне нужно запускать что-то по расписанию на сервере Windows, я использую запланированную задачу. Вы можете написать свой кусок электронной почты в качестве приложения консоли, сохранить его в месте на сервере, а затем запустить запланированное задание на заданный интервал времени. Я не уверен, какая версия Windows вы используете, но эти инструкции относятся к Windows 2008, Windows 8 и Windows 2012:

http://technet.microsoft.com/en-us/library/cc725745.aspx

Ещё вопросы

Сообщество Overcoder
Наверх
Меню