在main函数中调用没问题,代码如下:
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setHostName("smtp.163.com");
htmlEmail.setSmtpPort(25);
htmlEmail.setFrom("[email protected]");
htmlEmail.setCharset("utf-8");
DefaultAuthenticator defaultAuthenticator = new DefaultAuthenticator("auf421","123456");
htmlEmail.setAuthenticator(defaultAuthenticator);htmlEmail.setSubject("subject");
htmlEmail.setHtmlMsg("body");
List<InternetAddress> list=new ArrayList<InternetAddress>();
list.add(new InternetAddress("[email protected]"));
htmlEmail.setTo(list);
htmlEmail.send();当把相应代码移植到web服务器下,运行时抛异常
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.163.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:873)
at org.apache.commons.mail.Email.send(Email.java:898)
at com.whaty.forum.service.mail.TemplateMail.sendMailFromTemplate(TemplateMail.java:90)
at com.whaty.forum.service.task.SubscibeSendTimerTask.run(SubscibeSendTimerTask.java:110)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: 127.0.0.1, port: 25;
  nested exception is:
java.net.ConnectException: Connection refused: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:311)
at javax.mail.Service.connect(Service.java:255)
at javax.mail.Service.connect(Service.java:134)
at javax.mail.Service.connect(Service.java:86)
at com.sun.mail.smtp.SMTPTransport.connect(SMTPTransport.java:144)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:863)
... 5 more问题:
没搞清楚发送邮件的时候为什么会连接127.0.0.1
ps:本地机器没有添加smtp.163.com 对应本地的配置