Используя javamail для отправки с hotmail?
У меня работает Gmail и Yahoo, но не Hotmail. Вот что у меня есть, что я делаю не так?
private String mailhost = "smtp.live.com";
public hotmailSenderActivity(String user, String password) {
this.user = user;
this.password = password;
//This connects to the actual mailserver
Security.addProvider(new com.provider.JSSEProvider());
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.socketFactory.port", "587");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
Я пробовал порт 25 + 587 без SSL. Я пробовал порт 465 с вещами SSL. Адрес электронной почты и пароль верны (я их жестко запрограммировал).
Я не получаю никаких ошибок... Так в чем проблема?
2 ответа
1) использовать выходные данные отладки:
session.setDebug(true);
2) SMTP-сервер hotmail запускает не-ssl-соединение через порт 25 или 587 и использует starttls после первоначального подключения; таким образом удалить линии
props.put ("mail.smtp.socketFactory.port", "587"); props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
3) минимальное количество настроек тогда:
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.live.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
предполагается, что порт равен 25, в противном случае добавьте props.put ("mail.smtp.port", "587");
4) еще приятнее выглядит это:
...
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getDefaultInstance(props);
Transport trans = session.getTransport("smtp");
trans.connect("smtp.live.com", 25, "user", "pass");
теперь вы подключены, используйте методы транспорта
http://www.oracle.com/technetwork/java/javamail/faq/index.html
Избавьтесь от всего этого, что вам не нужно.