Home Backend Development C#.Net Tutorial Two .NET scheduled email code examples

Two .NET scheduled email code examples

Apr 01, 2017 am 11:36 AM
.net

Friends who often send emails know that the mailbox has a special function, which can be set to email sending Time, scheduled sending, how is this function implemented? Next, the editor will share with you the .NET code for sending scheduled emails. Friends in need can refer to it

Sometimes we may Sometimes we want to send an email to someone at a certain moment, like a birthday, but we are afraid that we will forget it by then. At this time, we should

use the function of sending scheduled emails, but How is this scheduled mail sending function implemented? There are two ways to implement the .net scheduled mail sending code. Please see the following for details.

Add a global application class Global.asax#.

##The code will be run when the website is visited

Global.asax code:


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);
  }
Copy after login


sendMail method

 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;
   }
Copy after login


##Second method:

To send emails regularly, you can use

Timer

to set the time, which is placed in Application_Start of Global.asax

using System.Net.Mail; 
using System.Timers; 
protected void Application_Start(object sender, EventArgs e) 
  { 
   Timer t = new Timer(60000);//设计时间间隔,如果一个小时执行一次就改为3600000 ,这里一分钟调用一次 
   t.Elapsed += new ElapsedEventHandler(t_Elapsed); 
   t.AutoReset = true; 
   t.Enabled = true; 
  } 
  private void t_Elapsed(object sender, ElapsedEventArgs e) 
  { 
   MailMessage message = new MailMessage(); 
   message.From = Messagefrom; 
   message.To.Add(MessageTo);    //收件人邮箱地址可以是多个以实现群发 
   message.Subject = MessageSubject; 
   message.Body = MessageBody; 
   message.IsBodyHtml = true;    //是否为html格式 
   message.Priority = MailPriority.High; //发送邮件的优先等级 
   SmtpClient sc = new SmtpClient(); 
   sc.Host = "smtp.sina.com";    //指定发送邮件的服务器地址或IP 
   sc.Port = 25;       //指定发送邮件端口 
   //sc.UseDefaultCredentials = true; 
   //sc.EnableSsl = true; 
   sc.Credentials = new System.Net.NetworkCredential(“**@**”, "密码"); //指定登录服务器的用户名和密码 
    sc.Send(message);  //发送邮件 
  }
Copy after login
The whole code is here Finished.

Create a console program and generate an exe. Use the Windows scheduled task program to specify a certain time point every day to send the idea. This idea is simpler than the service.

The above is the detailed content of Two .NET scheduled email code examples. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1655
14
PHP Tutorial
1253
29
C# Tutorial
1227
24
Share several .NET open source AI and LLM related project frameworks Share several .NET open source AI and LLM related project frameworks May 06, 2024 pm 04:43 PM

The development of artificial intelligence (AI) technologies is in full swing today, and they have shown great potential and influence in various fields. Today Dayao will share with you 4 .NET open source AI model LLM related project frameworks, hoping to provide you with some reference. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel is an open source software development kit (SDK) designed to integrate large language models (LLM) such as OpenAI, Azure

What are the employment prospects of C#? What are the employment prospects of C#? Oct 19, 2023 am 11:02 AM

Whether you are a beginner or an experienced professional, mastering C# will pave the way for your career.

.NET performance optimization technology for developers .NET performance optimization technology for developers Sep 12, 2023 am 10:43 AM

If you are a .NET developer, you must be aware of the importance of optimizing functionality and performance in delivering high-quality software. By making expert use of the provided resources and reducing website load times, you not only create a pleasant experience for your users but also reduce infrastructure costs.

Performance differences between Java framework and .NET framework Performance differences between Java framework and .NET framework Jun 03, 2024 am 09:19 AM

In terms of high-concurrency request processing, .NETASP.NETCoreWebAPI performs better than JavaSpringMVC. The reasons include: AOT early compilation, which reduces startup time; more refined memory management, where developers are responsible for allocating and releasing object memory.

C# .NET Interview Questions & Answers: Level Up Your Expertise C# .NET Interview Questions & Answers: Level Up Your Expertise Apr 07, 2025 am 12:01 AM

C#.NET interview questions and answers include basic knowledge, core concepts, and advanced usage. 1) Basic knowledge: C# is an object-oriented language developed by Microsoft and is mainly used in the .NET framework. 2) Core concepts: Delegation and events allow dynamic binding methods, and LINQ provides powerful query functions. 3) Advanced usage: Asynchronous programming improves responsiveness, and expression trees are used for dynamic code construction.

C# .NET: Exploring Core Concepts and Programming Fundamentals C# .NET: Exploring Core Concepts and Programming Fundamentals Apr 10, 2025 am 09:32 AM

C# is a modern, object-oriented programming language developed by Microsoft and as part of the .NET framework. 1.C# supports object-oriented programming (OOP), including encapsulation, inheritance and polymorphism. 2. Asynchronous programming in C# is implemented through async and await keywords to improve application responsiveness. 3. Use LINQ to process data collections concisely. 4. Common errors include null reference exceptions and index out-of-range exceptions. Debugging skills include using a debugger and exception handling. 5. Performance optimization includes using StringBuilder and avoiding unnecessary packing and unboxing.

From Web to Desktop: The Versatility of C# .NET From Web to Desktop: The Versatility of C# .NET Apr 15, 2025 am 12:07 AM

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

The Continued Relevance of C# .NET: A Look at Current Usage The Continued Relevance of C# .NET: A Look at Current Usage Apr 16, 2025 am 12:07 AM

C#.NET is still important because it provides powerful tools and libraries that support multiple application development. 1) C# combines .NET framework to make development efficient and convenient. 2) C#'s type safety and garbage collection mechanism enhance its advantages. 3) .NET provides a cross-platform running environment and rich APIs, improving development flexibility.

See all articles