SMTP email with javax.mail config issues
我可以通过在控制台上输入以下命令从 linux 服务器发送电子邮件,没有任何问题:
mail -s"Test Subject" [email protected] < /dev/null
我尝试通过 Java 应用程序发送它,使用 javax.mail 通过:
1 2 3 4 5 6 7 8 9 10 11 | public void sendMail() throws MessagingException { final Properties p = new Properties(); p.put("mail.smtp.host","localhost"); final Message msg = new MimeMessage(Session.getDefaultInstance(p)); msg.setFrom(new InternetAddress(from)); msg.addRecipient(RecipientType.TO, new InternetAddress(to)); msg.setSubject("Test"); msg.setText(body); Transport.send(msg); } |
但我得到了一个
Causing: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: localhost, 25; timeout -1
错误,这是我需要更换的原因吗
p.put("mail.smtp.host","localhost");
我的服务器地址?如果是,我在哪里可以找到我应该放在那里的东西?
谢谢!
您的本地机器上是否有运行邮件服务器?
您是否已配置 sendmail 以将邮件路由到您的邮件服务器?
如果你运行 "mail -v ...",它应该会告诉你 mail 命令正在做什么来发送你的消息。
但是,是的,很可能,您希望将 JavaMail 配置为直接连接到您的邮件服务器,该服务器可能不在您的本地计算机上运行。您可以在 JavaMail 常见问题解答中找到更多帮助。