Электронная почта, отправленная с помощью обычной почты, иногда не принимается. Как я могу устранить неполадки? - PullRequest
0 голосов
/ 27 сентября 2011

Когда я отправляю электронное письмо, но оно не получено, как я могу выяснить, в чем причина проблемы?

Мое приложение отправляет электронные письма через SMTP с использованием общих Apache-почтовая библиотека.В целях тестирования я использую SMTP-сервер gmail.(Наше производственное приложение использует внутренний сервер в нашей сети.)

В одном случае на тестовом сервере у меня есть пакетное задание, которое генерирует 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());
        }
    }

Inотладчик, я определяю, что исключение не выдается.

Моим первым предположением было то, что размер вложения слишком велик;но якобы gmail поддерживает вложения 25 МБ, а мое самое большое вложение - 14,3 МБ.В некоторых случаях, когда я запускаю всю партию из 5 электронных писем, электронное письмо с наибольшим вложением проходит, а меньшие исчезают.

...