Как отправить почту в java с виртуальной машины, имеющей прокси для доступа в интернет - PullRequest
0 голосов
/ 10 октября 2018

Я использую порт 25 и хост smtp.gmail.com.Я установил для свойства starttls значение true.Но я получаю сообщение об ошибке Не удалось подключиться к хосту, порт smtp.gmail.com 25, время ожидания -1

Порт разрешен в брандмауэре и в сети.

Согласно https://javaee.github.io/javamail/FAQ#proxy почта может быть отправлена ​​с использованием HTTP прокси из javax версии 1.6.0, я использую 1.6.2

, пока мой код

    String to = "abc@corporate.com";
    String subject = "Test subject";
    String msg ="email text";
    final String from ="abc@corporate.com";
    final  String password ="password";
    Properties props = new Properties();
    props.put("mail.smtp.proxy.host", "xx.xxx.xx.xx");
    props.put("mail.smtp.proxy.port", "xxxx");
    props.setProperty("mail.host", "smtp.gmail.com");
    props.put("mail.smtp.auth", "true");  
    props.put("mail.smtp.port", "25");  
    props.put("mail.debug", "true");  
    props.put("mail.smtp.starttls.enable","true");
    Session session = Session.getDefaultInstance(props,  
    new javax.mail.Authenticator() {
       protected PasswordAuthentication getPasswordAuthentication() {  
       return new PasswordAuthentication(from,password);  
   }  
   });  
   Transport transport = session.getTransport();  
   InternetAddress addressFrom = new InternetAddress(from);  

   MimeMessage message = new MimeMessage(session);  
   message.setFrom(addressFrom);  
   message.setSubject(subject);  
   message.setContent(msg, "text/plain");  
   message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));  

   transport.connect();  
   Transport.send(message);  
   transport.close();
   }
...