집 >백엔드 개발 >C#.Net 튜토리얼 >두 개의 .NET 예약 이메일 코드 예
이메일을 자주 보내는 친구들은 사서함에 로 설정할 수 있는 특별한 기능이 있다는 것을 알고 있습니다. 이메일 보내기 시간, 예약 보내기, 이 기능은 어떻게 구현되나요? 다음으로, 예약 이메일 보내기를 위한 .NET 코드를 편집자가 알려드릴 것입니다. 도움이 필요한 친구들이 참고할 수 있습니다
때때로 생일과 같은 특정 순간에 누군가에게 이메일을 보내고 싶지만, 그때쯤이면 잊어버릴까 두렵습니다.
예약된 이메일 보내기 기능을 이용해야 하지만. 이 예약 이메일 기능은 어떻게 구현되나요? .net 예약 이메일 코드를 구현하는 방법에는 두 가지가 있습니다. 자세한 내용은
글로벌 애플리케이션 클래스 Global.asax
웹사이트 방문 시 해당 코드가 실행됩니다Global.asax 코드:
void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 System.Timers.Timer timer = new System.Timers.Timer();//设计时间间隔,如果一个小时执行一次就改为 timer.Elapsed += new System.Timers.ElapsedEventHandler(Send); timer.AutoReset = true; timer.Enabled = true; } void Application_End(object sender, EventArgs e) { // 在应用程序关闭时运行的代码 System.Threading.Thread.Sleep(); string strUrl = "服务器地址"; System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(strUrl); System.Net.HttpWebResponse _HttpWebResponse = (System.Net.HttpWebResponse)_HttpWebRequest.GetResponse(); System.IO.Stream _Stream = _HttpWebResponse.GetResponseStream();//得到回写的字节流 _HttpWebResponse.Close(); } void Application_Error(object sender, EventArgs e) { // 在出现未处理的错误时运行的代码 } void Session_Start(object sender, EventArgs e) { // 在新会话启动时运行的代码 } void Session_End(object sender, EventArgs e) { // 在会话结束时运行的代码。 // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 // InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer // 或 SQLServer,则不引发该事件。 } private void Send(object sender, System.Timers.ElapsedEventArgs e) { switch (DateTime.Now.Hour) { case : case : SendEMail(); break; //default: // SendEMail(); // break; } } private void SendEMail() { string mailFrom = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString(); string mailUser = System.Configuration.ConfigurationManager.AppSettings["MailUser"].ToString(); string mailPassword = System.Configuration.ConfigurationManager.AppSettings["MailPassword"].ToString(); string hostIP = System.Configuration.ConfigurationManager.AppSettings["MailHost"].ToString(); List<string> mailAddress = new List<string>(); string mailSubjct = "邮件主题"; string mailBody = "邮件内容:"; mailAddress.Add("邮件地址");string strReturn = sendMail(mailSubjct, mailBody, mailFrom, mailAddress, hostIP, mailUser, mailPassword, false); }
sendMail 방법
public static string sendMail(string mailSubjct, string mailBody, string mailFrom, List<string> mailAddress, string hostIP, string username, string password, bool ssl) { string str = ""; try { MailMessage message = new MailMessage { IsBodyHtml = true, Subject = mailSubjct, Body = mailBody, From = new MailAddress(mailFrom) }; for (int i = ; i < mailAddress.Count; i++) { message.To.Add(mailAddress[i]); } SmtpClient client = new SmtpClient { EnableSsl = ssl, UseDefaultCredentials = false }; NetworkCredential credential = new NetworkCredential(username, password); client.Credentials = credential; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Host = hostIP; client.Port = x; client.Send(message); } catch (Exception exception) { str = exception.Message; } return str; }
두 번째 방법:
정기적으로 이메일을 보내려면Global.asax의 Application_Start에 있는 Timer를 사용하여 시간을 설정하면 됩니다. 여기에 모든 코드가 완료되었습니다.
콘솔 프로그램을 만들고 exe를 생성합니다. Windows 예약 작업 프로그램을 사용하여 매일 보낼 특정 시점을 지정하는 것이 서비스보다 간단합니다. 🎜>위 내용은 두 개의 .NET 예약 이메일 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!