SendFailedException没有正常工作

时间:2016-12-26 18:16:21

标签: java email exception smtp javamail

在使用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代码中显示的数组中添加无效地址,它现在没有做到。

0 个答案:

没有答案