Я пытаюсь отправить электронное письмо автоматически с помощью таймера. данный ниже код я использовал для отправки электронной почты. Но он не отвечает. При использовании одного и того же кода при событии нажатия кнопки его работа отлично. Помогите найти правильное решение. Спасибо.
Код:
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..!!";
}
}
}
Во многих веб-приложениях нам нужно отправлять расписания (автоматические) электронные письма, и мы планируем их. как:
Для этого мы обычно использовали окна или приложения 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.
}
Обычно, когда мне нужно запускать что-то по расписанию на сервере Windows, я использую запланированную задачу. Вы можете написать свой кусок электронной почты в качестве приложения консоли, сохранить его в месте на сервере, а затем запустить запланированное задание на заданный интервал времени. Я не уверен, какая версия Windows вы используете, но эти инструкции относятся к Windows 2008, Windows 8 и Windows 2012:
.ToString()
для строки (вы делаете это наem
).