java中的电子邮件客户端

问题描述:

尝试 { 属性props = new Properties(); props.put(“mail.smtp.starttls.enable”,“true”); props.setProperty(“mail.transport.protocol”,“smtp”); props.setProperty(“mail.smtp.host”,“smtp.gmail.com”); props.put(“mail.smtp.auth”,“true”);props.put(“mail.smtp.port”,“465”); props.put(“mail.smtp.socketFactory.port”,“587”); props.put(“mail.smtp.socketFactory.fallback”,“false”); props.setProperty(“mail.user”,“username”); props.setProperty(“mail.password”,“password”);java中的电子邮件客户端

Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() 
    { 
    protected PasswordAuthentication getPasswordAuthentication() 
    { return new PasswordAuthentication("username","password"); } 
    }); 
session.setDebug(true); 

MimeMessage msg = new MimeMessage(session); 

InternetAddress addressFrom = new InternetAddress(from); 
msg.setFrom(addressFrom); 

msg.addRecipient(Message.RecipientType.TO,new InternetAddress(" Recipient mail id ")); 

msg.setSubject(subject); 
Transport transport = session.getTransport(); 
transport.connect(); 
transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO)); 
transport.close(); 

} catch (Exception e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 

我正在使用上面的代码发送电子邮件到一个gmail帐户。我已经在属性中设置了smtp主机值(smtp.gmail.com)和端口(465)。但电子邮件没有发送,我的应用程序长时间卡住了。之后,像下面

给予我得到一个错误“javax.mail.MessagingException的:无法连接到SMTP主机:smtp.gmail.com端口:465,响应:-1”

谁能告诉什么原因以及如何解决这个问题?

设置

props.put("mail.smtp.starttls.enable", "true"); 

使TLS这是对端口没有465

props.put("mail.smtp.port", "587"); 

Google Doc

并检查您是否真的需要这些线路

props.put("mail.smtp.socketFactory.port", "587"); 
props.put("mail.smtp.socketFactory.fallback", "false"); 
+0

另一个参考http://forums.sun.com/thread.jspa?threadID=5316613 – stacker 2010-07-28 06:17:38

+0

嘿,非常感谢你,它的工作.... – Padma 2010-07-28 06:23:32