【发布时间】:2017-07-28 18:39:54
【问题描述】:
public static void sendMail(){
Properties prop = new Properties();
prop.put("mail.smtp.ssl.trust", "smtp.gmail.com");
prop.put("mail.smtp.auth", true);
prop.put("mail.smtp.starttles.enable", true);
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.starttls.enable", "true");
Session session = Session.getInstance(prop, new javax.mail.Authenticator()
{
protected javax.mail.PasswordAuthentication getPasswordAuthentication()
{
return new javax.mail.PasswordAuthentication("testerkenan@gmail.com", "tester1234");
}
});
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(cal.getTime());
String formatted = format1.format(cal.getTime());
ArrayList<Patient> list = new ArrayList<>();
try {
list = Arraycreate.Arraypatients();
System.out.println(list.get(0).getName());
System.out.println("list instiated");
for(int j = 0; j < 4; j++){
System.out.println("for loop works");
if (list.get(j).getNext().getDay() == cal.getTime().getDay() && list.get(j).getNext().getMonth() == cal.getTime().getMonth()&& list.get(j).getNext().getYear() == cal.getTime().getYear()){
System.out.println("if function works");
/*
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("testerkenan@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("testerkenan@gmail.com"));
message.setSubject("Follow up alert");
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Good Morning Doctor, you have a follow up today with " + list.get(j).getName()); // enter message
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
Transport.send(message);
JOptionPane.showMessageDialog(null, "Message Sent!");
} catch(Exception e) {
JOptionPane.showMessageDialog(null, "Something Wrong With Email!");
}*/
}
}
}catch (Exception e){
System.out.println(e);
我想在我的程序中发送一封电子邮件,所以我创建了这个方法。我使用了 System.out.println() 并注释掉了发送电子邮件部分以检查每个部分是否正在运行并且它们正在运行。但是,在应用发送电子邮件代码时。我得到了 catch 错误 e 和这个输出:
2017 年 3 月 9 日星期四 13:07:17 GST
java.util.NoSuchElementException: No line found
现在我已经在这个邮件方法中使用了 Arraylist,当我使用另一种方法时,我收到了 catch 错误。在我尝试从返回排序后的数组列表的 Arraycreate.Arraypatients() 方法中调用列表之前,之前的方法运行良好。
【问题讨论】:
-
能不能显示异常
-
Arraycreate.Arraypatients()返回一个少于 4 个元素的列表。 -
欢迎来到 SO。发布错误消息时,发布完整的堆栈跟踪,并标记堆栈跟踪发生错误的行。
-
顺便说一下,Java 中常见的命名约定是 getter(Arraypatients() 显然是)应该命名为“getPropertyname” - 所以在你的例子中是“getArraypatients()”。
-
Arraycreate.Arraypatients() 不会返回少于 4 个元素的列表,我在其他类中使用了相同的列表,并通过打印对其进行了测试。
标签: java arraylist try-catch jakarta-mail bluej