发送公共邮件的电子邮件*有时*未收到。我该如何排除故障?

时间:2011-09-27 19:42:22

标签: java email smtp gmail apache-commons-email

当我发送电子邮件但未收到时,我该如何找出问题的原因?

我的应用使用Apache commons-mail库通过SMTP发送电子邮件。出于测试目的,我使用的是gmail SMTP服务器。 (我们的制作应用程序使用我们网络上的内部服务器。)

在测试服务器上的一个案例中,我有一个批处理作业,可生成5个带附件的电子邮件。收到一些电子邮件,其他电子邮件被标记为已发送,但从未出现在我的收件箱中。似乎没有收到电子邮件的模式以及哪些电子邮件无声地消失。

发送和检查错误的代码如下所示:

    final Mail mail = ...;
                //The Mail class is our app's mail object, which provides data used to generate the MIME e-mail and record the results.
    final MultiPartEmail email = ...;
    try {
        email.setSentDate(mail.getDateSent());
        email.send();
    }
    catch (EmailException ee) {
        success = false;
        mail.setDateSent(null);

        getLog().error("Mail not sent: ", ee);
        if (ee.getMessage().indexOf("receiver address required") != -1) {
            mail.setErrorMessage(ee.getMessage());
            getLog().error(mail.toString());
        }
    }

在调试器中,我确定没有抛出异常。

我的第一个猜测是附件尺寸太大;但是,据说gmail支持25MB附件,我最大的附件是14.3 MB。在某些情况下,当我运行整批5封电子邮件时,附件数量最大的电子邮件会通过,较小的电子邮件会消失。

0 个答案:

没有答案