我可以通过在控制台上键入以下命令从Linux服务器发送电子邮件,而不会出现任何问题:
mail -s"测试对象" testemail@gmail.com<的/ dev / null的
我尝试通过Java应用程序发送它,使用javax.mail通过:
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);
}
但是我得到了
导致:com.sun.mail.util.MailConnectException:无法连接到主机,端口:localhost,25;超时-1
错误,这是因为我需要更换
p.put(" mail.smtp.host"," localhost");
使用我服务器的地址?如果是的话,我在哪里可以找到我应该放在那里的东西?
谢谢!
答案 0 :(得分:1)
您是否在本地计算机上运行了邮件服务器?
您是否已将sendmail配置为将邮件路由到您的邮件服务器?
如果您运行" mail -v ..."它应该告诉你邮件命令正在发送你的消息。
但是,很可能,您希望将JavaMail配置为直接连接到您的邮件服务器,而该邮件服务器可能未在您的本地计算机上运行。您可以在JavaMail FAQ中找到更多帮助。