我使用以下代码发送电子邮件。只需创建一个对象并调用该对象的方法即可。
package com.kap.globalreport;
public class Mainmethod930 {
public static void main(String[] args) {
EmailReport930 emailReport930 = new EmailReport930();
emailReport930.sendEmail("emailContent","Subject");
}
}
在上面创建对象并在sendEmail方法下面调用。
package com.kap.globalreport;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Date;
import java.util.Properties;
public class EmailReport930 implements Runnable {
final private String SMTP_SERVER = "166.62.121.14";
final private String SMTP_PORT = "587";
final private String ROWEL_EMAIL = "dumidu@kapruka.com";
final private String FROM_EMAIL = "cargillspaymenterros@kapruka.com";
final private String FROM_EMAIL_PASSWORD = "cpay@55";
private String emailContent;
private String subject;
public String getEmailContent() {
return emailContent;
}
public void setEmailContent(String emailContent) {
this.emailContent = emailContent;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
private void setEmail(String emailContent, String subject) {
if (emailContent != null && subject != null) {
sendEmail(emailContent, subject);
}
}
public void sendEmail(String emailContent, String subject) {
try {
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", SMTP_SERVER);
props.put("mail.smtp.port", SMTP_PORT);
props.put("mail.smtp.auth", "true");
Session mailSession = Session.getInstance(props, new Authenticator() {
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(FROM_EMAIL, FROM_EMAIL_PASSWORD);
}
});
mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(FROM_EMAIL));
message.addHeader("site", "kapruka.com");
message.addHeader("service", "Cargills Payment Service");
message.setSentDate(new Date());
message.addRecipient(Message.RecipientType.TO, new InternetAddress(ROWEL_EMAIL));
message.setSubject(subject);
MimeMultipart mimeMultipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(emailContent, "text/html; charset=utf-8");
messageBodyPart.setContent("<h1>SMTP_PORT</h1>", "text/html");
mimeMultipart.addBodyPart(messageBodyPart);
message.setContent(mimeMultipart);
Transport.send(message);
System.out.println("Email Sent successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
@Override
public void run() {
setEmail(emailContent, subject);
}
}
我想在特定时间运行此发送电子邮件方法,我也想使用休眠框架从数据库中获取数据。电子邮件应与上述数据一起发送。
答案 0 :(得分:1)
通常有四种不同的方式来定期运行任务:
在您的情况下,由于您未使用任何框架,因此可以使用本机Java并以timer
和ScheduledExecutorService
的方式进行操作:
public class PeriodicTask {
public static void main(String... args) {
// System.out.println(LocalTime.ofSecondOfDay(getDelayTo(15, 4)));
// System.out.println(LocalTime.ofSecondOfDay(getDelayTo(16, 4)));
testTimer();
testScheduledExecutorService();
}
private static long getDelayTo(int hour, int minute) {
LocalDateTime currentTime = LocalDateTime.now();
long gapToSpecified = ChronoUnit.SECONDS.between(currentTime, LocalDate.now().atTime(hour, minute));
if (gapToSpecified < 0) { // the time already passed => do it tomorrow;
return ChronoUnit.SECONDS.between(currentTime, LocalDate.now().plusDays(1).atTime(hour, minute));
}
return gapToSpecified; // not passed, do it later today at the specified time;
}
public static void testTimer() {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println(LocalDateTime.now());
System.out.println("Hello world");
}
}, getDelayTo(13, 0), TimeUnit.DAYS.toSeconds(1));
}
public static void testScheduledExecutorService() {
Executors.newScheduledThreadPool(1).scheduleWithFixedDelay(() -> {
System.out.println("Hello World!");
}, getDelayTo(13, 0), TimeUnit.DAYS.toSeconds(1), TimeUnit.SECONDS);
}
}
答案 1 :(得分:1)
使用Moving File: /Users/jkirchoff/Documents/Archive/JayWork/1.custom-award-768x512.jpg
To: /Users/jkirchoff/Pictures/Archive/1.custom-award-768x512.jpg
Moving File: /Users/jkirchoff/Documents/Archive/JayWork/10351458_318162838331056_9023492155204267542_n.jpg
To: /Users/jkirchoff/Pictures/Archive/10351458_318162838331056_9023492155204267542_n.jpg
...
并安排您的工作。
java.util.Timer
Timer.schedule(TimerTask task, Date firstTime, long period)