如何自动发送电子邮件
本文关键字:电子邮件 何自动 | 更新日期: 2023-09-27 18:30:17
我正在尝试使用计时器自动发送电子邮件。 下面给出的代码是我用于发送电子邮件的。但它没有回应。在按钮单击事件下使用相同的代码时,它运行良好。帮助我找到一个合适的解决方案。谢谢。
法典:
namespace AlertMail
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
MailMessage loginInfo = new MailMessage();
string em = "toAddress@gmail.com";
loginInfo.To.Add(em.ToString());
loginInfo.From = new MailAddress("fromAddress@gmail.com");
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("fromAddress@gmail.com", "Password");
smtp.Send(loginInfo);
label6.Text = "Alert is send to your email..!!";
}
}
}
在许多Web应用程序中,我们需要发送计划(自动)电子邮件并安排它们。 喜欢:
- 定期发送电子邮件
- 每天、每周、每月或每年发送一次消息。
为此,我们通常使用Windows服务或Windows应用程序。
正如我们所知,Web服务器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服务器上按计划运行某些内容时,我会使用计划任务。 可以将电子邮件文章编写为 Console 应用程序,将其保存到服务器上的某个位置,然后让计划任务按给定的时间间隔运行该应用程序。 我不确定您运行的是哪个版本的 Windows,但这些说明适用于 Windows 2008、Windows 8 和 Windows 2012:
http://technet.microsoft.com/en-us/library/cc725745.aspx