Ну, я бы сказал, что при попытке подключения возникает проблема с аутентификацией. Вы не предоставляете имя пользователя или пароль, если ваш сервер обмена не требует имени пользователя и пароля.
ОБНОВЛЕНИЕ: При использовании JDK 7 см. Следующий пост, это решило эту проблему:
Дефект - отказано в доступе JDK7 для сокетов при использовании VPN
"Больше копаться, и кажется, что у VPN-клиента отключен IPv6, что вызывает проблемы с JDK7. Если я использую следующий флаг -Djava.net.preferIPv4Stack = true, я больше не вижу ошибок. Ожидается ли этот обходной путь или это проблема? "
public class MailTest {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws MessagingException {
String host = "smtp.gmail.com";
String to = "myEmail@gmail.com";
String from = "myEmail@gmail.com";
String subject = "test";
String messageText = "body test";
Properties props = System.getProperties();
props.put("mail.host", host);
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", "25");
// If using authentication, otherwise comment out
props.put("mail.smtp.auth", "true");
// Gmail requires TLS, your server may not
props.put("mail.smtp.starttls.enable", "true");
Session mailSession = Session.getDefaultInstance(props, null);
Message msg = new MimeMessage(mailSession);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);
Transport transport = mailSession.getTransport("smtp");
//connect with authentication
//transport.connect(host,"myUsername" , "myPassword");
//connect without authentication
transport.connect();
transport.sendMessage(msg, address);
transport.close();
System.out.println("Mail was sent to " + to);
System.out.println(" from " + from);
System.out.println(" using host " + host + ".");
}
}