Отправить с Hotmail с Javamail? - PullRequest
       4

Отправить с Hotmail с Javamail?

0 голосов
/ 16 февраля 2012

Я могу отправлять из Yahoo и Gmail, но независимо от того, что я делаю, я не могу отправить из Hotmail.

public class LiveSenderActivity extends javax.mail.Authenticator {
private String mailhost = "smtp.live.com";
private String user;
private String password;
private Session session;

static {
    Security.addProvider(new com.provider.JSSEProvider());
}

public LiveSenderActivity(String user, String password) {
    this.user = user;
    this.password = password;

    // This connects to the actual mailserver
    Properties props = new Properties();
    props.setProperty("mail.transport.protocol", "smtp");
    props.setProperty("mail.host", mailhost);
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.auth", "true");

    props.put("mail.smtp.socketFactory.port", "587");
    props.put("mail.smtp.socketFactory.class",
            "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");
    props.setProperty("mail.smtp.quitwait", "false");

    session = Session.getDefaultInstance(props, this);
}

Я пробовал с и без SSL, а с портом 25из 587 ... ничего.

Я что-то не так делаю?Как я уже сказал, Yahoo и Gmail работают как шарм, но не это ..

Это также не дает мне никаких ошибок ..

1 Ответ

1 голос
/ 16 февраля 2012

Помогает ли эта запись часто задаваемых вопросов по JavaMail справка?

JavaMail 1.4 может отправлять и читать сообщения, используя Hotmail. Все, что требуется, это правильно настроить JavaMail. Я проиллюстрирую правильную конфигурацию, используя демонстрационные программы, которые поставляются с JavaMail - msgshow.java и smtpsend.java.

Давайте предположим, что ваше имя пользователя Hotmail - "user@hotmail.com", а ваш пароль - "passwd".

Чтобы прочитать почту из вашего почтового ящика Hotmail, вызовите msgshow следующим образом:

java msgshow -D -T pop3s -H pop3.live.com -U user@hotmail.com -P passwd

Прочитав исходный код msgshow.java, вы увидите, как эти аргументы командной строки используются в API JavaMail. Сначала вы должны попробовать использовать msgshow, как показано выше, и как только это заработает, перейдите к написанию и настройке собственной программы для использования Hotmail. Фрагмент кода, показанный выше для подключения к Gmail, также будет работать для подключения к Hotmail, просто изменив имя хоста.

Чтобы отправить сообщение через Hotmail, вызовите smtpsend следующим образом:

java -Dmail.smtp.starttls.enable=true -Dmail.smtp.port=587 smtpsend
     -d -M smtp.live.com -U user@hotmail.com -P passwd
     -A someotheruser@hotmail.com

(Обратите внимание, что я разбил команду на три строки для отображения, но вы должны ввести ее в одну строку.)

Программа smtpsend использует системные свойства при создании сеанса JavaMail, поэтому свойства, заданные в командной строке, будут доступны для сеанса JavaMail.

Программа smtpsend запросит тему и текст сообщения. Завершите тело сообщения с помощью ^ D в UNIX или ^ Z в Windows.

Опять же, вы можете прочитать исходный код smtpsend.java, чтобы увидеть, как аргументы командной строки используются в API JavaMail. Приведенный выше фрагмент кода для подключения к Gmail также будет работать для подключения к Hotmail, просто изменив имя хоста и изменив вызов connect на t.connect (host, 587, username, password). Конечно, существует несколько способов использования API JavaMail для достижения той же цели. Это должно помочь вам понять основные параметры конфигурации, необходимые для использования Hotmail.

...