首页主机资讯java如何实现定期发送邮件功能

java如何实现定期发送邮件功能

时间2024-01-22 15:40:03发布访客分类主机资讯浏览957
导读:Java可以通过使用JavaMail API实现定期发送邮件的功能。下面是一个简单的示例代码: import java.util.*; import javax.mail.*; import javax.mail.internet.*;...

Java可以通过使用JavaMail API实现定期发送邮件的功能。下面是一个简单的示例代码:

import java.util.*;
    
import javax.mail.*;
    
import javax.mail.internet.*;


public class EmailScheduler {
    
    private Timer timer;


    public EmailScheduler() {
    
        timer = new Timer();

    }


    public void scheduleEmail(String recipient, String subject, String message, Date date) {

        timer.schedule(new TimerTask() {

            @Override
            public void run() {
    
                // 发送邮件
                sendEmail(recipient, subject, message);

            }

        }
    , date);

    }


    private void sendEmail(String recipient, String subject, String message) {
    
        String sender = "your-email@example.com";
     // 发送者邮箱
        String password = "your-password";
     // 发送者邮箱密码

        Properties props = new Properties();
    
        props.setProperty("mail.smtp.host", "smtp.example.com");
     // SMTP服务器地址
        props.setProperty("mail.smtp.auth", "true");


        Session session = Session.getInstance(props, new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
    
                return new PasswordAuthentication(sender, password);

            }

        }
    );


        try {
    
            // 创建邮件消息
            MimeMessage mimeMessage = new MimeMessage(session);
    
            mimeMessage.setFrom(new InternetAddress(sender));
    
            mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
    
            mimeMessage.setSubject(subject);
    
            mimeMessage.setText(message);
    

            // 发送邮件
            Transport.send(mimeMessage);
    
            System.out.println("邮件已发送");

        }
 catch (MessagingException e) {
    
            e.printStackTrace();

        }

    }


    public static void main(String[] args) {
    
        EmailScheduler scheduler = new EmailScheduler();
    

        // 在指定日期时间发送邮件
        Calendar calendar = Calendar.getInstance();
    
        calendar.set(2022, Calendar.JANUARY, 1, 10, 0, 0);
    
        Date date = calendar.getTime();
    
        scheduler.scheduleEmail("recipient@example.com", "定期邮件", "这是一封定期发送的邮件", date);

    }

}
    

上述示例代码使用了java.util.Timer类来定时发送邮件。scheduleEmail方法可以指定要发送邮件的收件人、主题、内容以及发送的日期时间。通过sendEmail方法使用JavaMail API发送邮件。

请注意替换代码中的senderpasswordsmtp.example.com等信息为你自己的实际邮箱信息和SMTP服务器地址。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java如何实现定期发送邮件功能
本文地址: https://pptw.com/jishu/583066.html
Python怎么实现自动抓取微信聊天内容 pycharm如何创建django项目

游客 回复需填写必要信息