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发送邮件。
请注意替换代码中的sender
、password
和smtp.example.com
等信息为你自己的实际邮箱信息和SMTP服务器地址。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/829720.html