C#中如何實(shí)現(xiàn)SMTP郵件的定時(shí)發(fā)送

c#
小樊
106
2024-08-18 05:10:38
欄目: 編程語言

在C#中實(shí)現(xiàn)SMTP郵件的定時(shí)發(fā)送,可以使用System.Net.Mail命名空間中的SmtpClient類和MailMessage類。以下是一個(gè)示例代碼,演示如何實(shí)現(xiàn)在指定時(shí)間發(fā)送郵件:

using System;
using System.Net;
using System.Net.Mail;
using System.Threading;

class Program
{
    static void Main()
    {
        // 設(shè)置SMTP服務(wù)器和端口
        SmtpClient client = new SmtpClient("smtp.example.com", 587)
        {
            Credentials = new NetworkCredential("your_email@example.com", "your_password"),
            EnableSsl = true
        };

        // 創(chuàng)建郵件消息
        MailMessage message = new MailMessage("your_email@example.com", "recipient@example.com", "Subject", "Body");

        // 設(shè)置發(fā)送時(shí)間
        DateTime sendTime = new DateTime(2022, 1, 1, 12, 0, 0);

        // 計(jì)算延遲時(shí)間
        TimeSpan delay = sendTime - DateTime.Now;

        // 創(chuàng)建定時(shí)器
        Timer timer = new Timer((state) =>
        {
            // 發(fā)送郵件
            client.Send(message);
            Console.WriteLine("Email sent at: " + DateTime.Now);
        }, null, (int)delay.TotalMilliseconds, Timeout.Infinite);

        // 等待郵件發(fā)送完成
        Console.ReadLine();
    }
}

在此示例中,我們首先創(chuàng)建了一個(gè)SmtpClient實(shí)例,指定SMTP服務(wù)器地址、端口和憑據(jù)。然后創(chuàng)建一個(gè)MailMessage實(shí)例,設(shè)置發(fā)件人、收件人、主題和正文。接下來設(shè)置發(fā)送時(shí)間,并根據(jù)當(dāng)前時(shí)間和發(fā)送時(shí)間計(jì)算出延遲時(shí)間。最后創(chuàng)建一個(gè)定時(shí)器,在指定的延遲時(shí)間后發(fā)送郵件。

請(qǐng)注意,上述示例中的發(fā)送時(shí)間是固定的,你可以根據(jù)需要修改發(fā)送時(shí)間。另外,確保在發(fā)送郵件之前替換示例中的SMTP服務(wù)器地址、發(fā)件人郵箱、收件人郵箱和發(fā)件人郵箱的密碼。

0