在使用Javamail API
发送邮件的catch块中,我使用instanceof
对异常进行分类AuthenticationFailedException
正在执行其工作但SendFailedException
不是。我正在使用一些邮件地址测试我的应用程序,其中包含一些有效和一些无效地址但 SendFailedException
不会触发无效地址。
以下是我使用catch块的方法
catch (MessagingException ex) {
if (ex instanceof AuthenticationFailedException) {
JOptionPane.showMessageDialog(null, "Exception: \n" + "Athentication failed due to invalid sender mail or password\n");
} else if (ex instanceof SendFailedException) {
SendFailedException e = (SendFailedException) ex;
final Address[] invalidAddresses = e.getInvalidAddresses();
setFailedAddresses(invalidAddresses);
final Address[] validSentAddresses = e.getValidSentAddresses();
setConfirmedAddresses(validSentAddresses);
final Address[] validUnsentAddresses = e.getValidUnsentAddresses();
resend(validUnsentAddresses);
JOptionPane.showMessageDialog(null, "Exception: \n: " + "invalid mail address = "+invalidAddresses.length+"\nvalid addrs = "+validSentAddresses.length+"\nvalid not treated = "+validUnsentAddresses.length);
} else if (ex instanceof NoSuchProviderException) {
JOptionPane.showMessageDialog(null, "Exception: \n " + "No provider found with the name you specified");
你能指出我错在哪里吗?
我的应用程序运行良好并将邮件发送到有效地址但无效地址不会出现异常。 实际上程序不会进入此异常。
以下是我添加收件人的方式
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(addrsString));
其中:addrsString
是一个包含逗号分隔邮件的字符串
我想要的是它应该向exception
代码中显示的数组中添加无效地址,它现在没有做到。