> 백엔드 개발 > C#.Net 튜토리얼 > 두 개의 .NET 예약 이메일 코드 예

두 개의 .NET 예약 이메일 코드 예

怪我咯
풀어 주다: 2017-04-01 11:36:00
원래의
2109명이 탐색했습니다.

이메일을 자주 보내는 친구들은 사서함에 로 설정할 수 있는 특별한 기능이 있다는 것을 알고 있습니다. 이메일 보내기 시간, 예약 보내기, 이 기능은 어떻게 구현되나요? 다음으로, 예약 이메일 보내기를 위한 .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.asaxApplication_Start에 있는 Timer를 사용하여 시간을 설정하면 됩니다. 여기에 모든 코드가 완료되었습니다.

콘솔 프로그램을 만들고 exe를 생성합니다. Windows 예약 작업 프로그램을 사용하여 매일 보낼 특정 시점을 지정하는 것이 서비스보다 간단합니다. 🎜>

위 내용은 두 개의 .NET 예약 이메일 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿