GMail не возвращает возвращенное письмо

У нас есть приложение Java, которое отправляет электронную почту через наши корпоративные учетные записи электронной почты, предоставленные Google. В большинстве случаев это работает нормально, но когда у нас есть неправильный адрес электронной почты, мы никогда не получим ответное письмо с возвратом, независимо от того, куда мы его отправили.

Однако, если я вхожу в ту же учетную запись электронной почты и отправляю на тот же неправильный адрес электронной почты, я получаю сообщение о недоставке.

Почему я не получаю сообщение о недоставке при программной отправке электронной почты?

Вот наш код, который отправляет электронное письмо:

private void sendMessageImpl(String toAddresses, String replyToAddress, String subject, String body, int failedAttempts, long startTime) throws MessagingException {
    final Properties properties = getMailProperties();

    String fromAddress = properties.getProperty("mail.from");        
    Session session = getSession();
    Transport transport = null;
    boolean tryingToConnect = false;

    try {
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(fromAddress));
        toAddresses = toAddresses.replaceAll(";", ",");
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddresses));
        message.setSubject(subject);
        message.setText(body);

        // Send the message
        transport = session.getTransport(message.getAllRecipients()[0]);
        tryingToConnect = true;
        transport.connect();
        tryingToConnect = false;
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
        transport = null;
    } catch (NullPointerException e) {
        Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, "Fail to send email to " + toAddresses+". Subject: "+subject+"\nContents: "+body, e);
        throw new MessagingException("Mail Failure");
    } catch (MessagingException e) {
        Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, "Fail to send email to " + toAddresses+". Subject: "+subject+"\nContents: "+body, e);
    } finally {
        if (transport != null) {
            try {
                transport.close();
            } catch (MessagingException e) {
                Logger.getLogger(Mail.class.getName()).log(Level.SEVERE, "Failed to close transport after earlier error left it open. ", e);
            }
        }
    }
}

Какое значение действительный у fromAddress?

Jim Garrison 15.06.2018 21:40

Адрес отправителя - это псевдоним группы, который отправляется нескольким людям. Это адрес электронной почты нашей службы поддержки, поэтому support @ <mycompany> .com.

Stephen M -on strike- 15.06.2018 22:40

Из Javadoc: «Соответствующее событие TransportEvent, указывающее статус доставки, доставлено любому TransportListener, зарегистрированному на этом транспорте» - можете ли вы зарегистрировать TransportListener для перехвата любой информации о состоянии?

Jim Garrison 15.06.2018 23:01

@JimGarrison Это стоит взглянуть.

Stephen M -on strike- 16.06.2018 00:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
32
0

Другие вопросы по теме