次の方法を使用して、プログラムから電子メールを送信しようとしています。
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 プログラムで電子メールを使用しようとしたのはこれが初めてなので、問題がどこにあるのかわかりません。