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");
并检查您是否真的需要这些线路
props.put("mail.smtp.socketFactory.port", "587");
props.put("mail.smtp.socketFactory.fallback", "false");
另一个参考http://forums.sun.com/thread.jspa?threadID=5316613 – stacker 2010-07-28 06:17:38
嘿,非常感谢你,它的工作.... – Padma 2010-07-28 06:23:32