я пытаюсь использовать javamail для отправки электронной почты, но это не работает - PullRequest
0 голосов
/ 11 апреля 2020

это мой код и следующая «ошибка»:

(я уже проверял несколько учетных записей электронной почты) (у меня также есть эти банки в моем classpath)

Ошибка:

ОТЛАДКА: setDebug: JavaMail версия 1.4.5

ОТЛАДКА: getProvider (), возвращающий javax.mail.Provider [TRANSPORT, smtp, com.sun.mail.smtp.SMTPTransport, Sun Microsystems, Inc]

Отладка SMTP: useEhlo true, useAuth true

Отладка SMTP: useEhlo true, useAuth true

Отладка SMTP: попытка подключения к хосту "smtp.gmail .com ", порт 465, isSSL false

Мой код

import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMailApp
{
public static void main(String[] args) {
Properties props = new Properties();
/** Parâmetros de conexão com servidor Gmail */
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", 
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");

Session session = Session.getDefaultInstance(props,
  new javax.mail.Authenticator() {
       protected PasswordAuthentication getPasswordAuthentication() 
       {
             return new PasswordAuthentication("myemail@gmail.com", 
             "mypass");
       }
  });

/** Ativa Debug para sessão */
session.setDebug(true);

try {

  Message message = new MimeMessage(session);
  message.setFrom(new InternetAddress("myemail@gmail.com")); 
  //Remetente

  Address[] toUser = InternetAddress //Destinatário(s)
             .parse("abcd@gmail.com");  

  message.setRecipients(Message.RecipientType.TO, toUser);
  message.setSubject("Enviando email com JavaMail");//Assunto
  message.setText("Enviei este email utilizando JavaMail com minha conta GMail!");
  /**Método para enviar a mensagem criada*/
  Transport.send(message);

  System.out.println("Feito!!!");

 } catch (MessagingException e) {
    throw new RuntimeException(e);
}
}
}

1 Ответ

0 голосов
/ 17 апреля 2020

Исправьте все эти распространенные ошибки JavaMail , обновите до более новой версии JavaMail и опубликуйте Отладочный вывод JavaMail . Если это все еще не работает, поищите подсказки в FAQ по JavaMail.

...