使用javamail从Hotmail发送?

我有Gmail和雅虎工作,但不是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的东西。 我已经尝试与SSL的东西端口465。 电子邮件和密码是正确的(我严格编码他们是肯定的)。

我没有收到任何错误…那么最新的问题是什么?

Solutions Collecting From Web of "使用javamail从Hotmail发送?"

1)使用debugging输出:

 session.setDebug(true); 

2)hotmail smtp服务器在端口25或587启动非ssl连接,初始连接后使用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"); 

现在你已经连接了,使用Transport的方法

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

摆脱所有的sockets工厂的东西,你不需要它。