Java 与commons mail一起发送的电子邮件*有时*未收到。如何排除故障?

Java 与commons mail一起发送的电子邮件*有时*未收到。如何排除故障?,java,email,smtp,gmail,apache-commons-email,Java,Email,Smtp,Gmail,Apache Commons Email,当我发送了一封电子邮件但没有收到时,我如何才能找出问题的原因 我的应用程序使用Apache commons邮件库通过SMTP发送电子邮件。出于测试目的,我正在使用gmail SMTP服务器。(我们的生产应用程序使用网络上的内部服务器) 在测试服务器上的一个例子中,我有一个批处理作业,它生成5封带有附件的电子邮件。有些电子邮件已收到,有些则标记为已发送,但从未出现在我的收件箱中。似乎不存在一种模式,即接收哪些电子邮件,哪些电子邮件会悄悄消失 发送和检查错误的代码如下所示: final Ma

当我发送了一封电子邮件但没有收到时,我如何才能找出问题的原因

我的应用程序使用Apache commons邮件库通过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.3MB。在某些情况下,当我运行整批5封电子邮件时,附件最大的电子邮件会通过,而附件较小的则会消失。

我不知道这是否是您的问题,但请记住,“附件大小”表示的25MB可能指的是邮件大小,经过BASE64编码后,将比原始文件大很多。好的。。。我如何确定邮件的总大小?如果邮件太大,我如何才能得到某种错误反馈,说电子邮件已被阻止?