我正在尝试使用以下方法从我的程序发送电子邮件:
void sendEmails(Tutor t, Date date, Time time, String tuteeName, String tuteeEmail){
System.out.println("sending emails");
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", "465");
SimpleDateFormat timeFmt = new SimpleDateFormat("hh:mm a");
SimpleDateFormat dateFmt = new SimpleDateFormat("EEE, MMMM dd");
String datePrint = dateFmt.format(date);
String timePrint = timeFmt.format(time);
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message tutorMessage = new MimeMessage(session);
tutorMessage.setFrom(new InternetAddress("laneycodingclub@gmail.com"));
tutorMessage.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(t.getEmail()));
tutorMessage.setSubject("Tutoring Appointment Scheduled");
tutorMessage.setText("Hey " + t.getName() +
"\n \t You have a new appointment scheduled on " + datePrint + " at " + timePrint +
"with " + tuteeName + ". \n If you cannot make this appointment, please contact club leadership immediately. "
+ "\n Thanks for helping out!");
Transport.send(tutorMessage);
System.out.println("Done sending");
} catch (MessagingException e) {
System.out.println("messagingerror");
e.printStackTrace();
}
}
但是当程序到达这个方法时,GUI 锁定并且程序冻结。这是我第一次尝试在 Java 程序中使用电子邮件,所以我不确定问题在哪里。