java实现定时发送邮件
时间: 2023-09-25 16:16:18 浏览: 48
以下是Java实现定时发送邮件的示例代码:
```java
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
public class EmailSender {
private final String username = "your_email_address";
private final String password = "your_email_password";
private final String recipient = "recipient_email_address";
private final String subject = "Email Subject";
private final String message = "Email Content";
public void sendEmail() {
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message emailMessage = new MimeMessage(session);
emailMessage.setFrom(new InternetAddress(username));
emailMessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient));
emailMessage.setSubject(subject);
emailMessage.setText(message);
Transport.send(emailMessage);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
TimerTask emailTask = new TimerTask() {
public void run() {
EmailSender emailSender = new EmailSender();
emailSender.sendEmail();
}
};
Timer timer = new Timer();
timer.schedule(emailTask, 0, 60000); // send email every 60 seconds
}
}
```
此代码使用JavaMail API发送电子邮件并使用Java Timer类执行定时任务。在示例代码中,电子邮件每60秒发送一次,但可以根据需要更改定时器的间隔。将“your_email_address”和“your_email_password”替换为发件人的电子邮件地址和密码,并将“recipient_email_address”替换为收件人的电子邮件地址。替换“Email Subject”和“Email Content”以自定义电子邮件的主题和内容。