Должен дать команду STARTTLS сначала. Отправка электронного письма с Java и Google Apps

20
задан Community 23 May 2017 в 12:32
поделиться

3 ответа

Я думаю, что это получено, чтобы сделать с использованием SMTPS вместо SMTP для передачи почты. Вот другая версия, смоделированная после JavaMail FAQ при доступе к Gmail. Обратите внимание, что я не учел всю более прекрасную обработку исключений уровня для ясности.

private static void send(
        final String username,
        final String password,
        final String recipients,
        final String subject,
        final String body)
        throws Exception
{
    final Session session = Session.getInstance(System.getProperties(), null);
    final Message msg = new MimeMessage(session);
    final String senderEmail = username.contains("@") ? username : (username + "@gmail.com");
    msg.setFrom(new InternetAddress(senderEmail));

    final Address[] recipientAddresses = InternetAddress.parse(recipients);
    msg.setRecipients(Message.RecipientType.TO, recipientAddresses);

    msg.setSentDate(new Date());
    msg.setSubject(subject);
    msg.setText(body);

    final Transport transport = session.getTransport("smtps");
    transport.connect(GMAIL_SMTP_HOST, GMAIL_SMTP_PORT, username, password);
    transport.sendMessage(msg, recipientAddresses);
    transport.close();
}
4
ответ дан 29 November 2019 в 23:17
поделиться

Я нашел проблему. Ранее я использовал j2ee.jar для импорта javax.mail.

я удалил j2ee.jar из пути к классу и загрузил JavaMail 1.4.1 и поместил в мой путь к классу две банки, smtp.jar и mailapi.jar. Я использую теперь smtps вместо этого , smtp

Transport transport = session.getTransport("smtps");            

Теперь тарифицирует работы кода Ящерицы.

19
ответ дан 29 November 2019 в 23:17
поделиться

Это версия Java Mail API. Я сталкивался с этим вопросом, и я только что обновил API Java Mail до 1.4.3 Он отлично работает для меня!

Спасибо!

8
ответ дан 29 November 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: