Используя javamail для отправки с hotmail? - PullRequest
7 голосов
/ 01 февраля 2012

У меня работают 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 ]

19 голосов
/ 17 февраля 2012

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");

теперь вы подключены, используйте методы Транспорт

2 голосов
/ 01 февраля 2012

http://www.oracle.com/technetwork/java/javamail/faq/index.html#hotmail

Избавьтесь от всего этого, что вам не нужно.

...