我正在创建一个表单,当用户填写完详细信息并单击“提交”后,该表单将通过电子邮件发送详细信息。
使用 JavaMail 提交邮件:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
try {
String host = "localhost";
String from = "root@localhost.localdomain";
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.debug", "true");
Session session = Session.getDefaultInstance(props, null);
session.setDebug(true);
Transport transport = session.getTransport("smtp");
MimeMessage message = new MimeMessage(session);
Address fromAddress = new InternetAddress("root@localhost.localdomain");
message.setFrom(fromAddress);
InternetAddress to = new InternetAddress("sendToAliases@localhost.localdomain");
message.addRecipient(Message.RecipientType.TO, to);
message.setSubject("Email Details Sending");
message.setText("This is my testing content.");
transport.connect(host, from);
message.saveChanges();
Transport.send(message);
transport.close();
} finally {
out.close();
}
}
我正在使用 sendToAliases@localhost.localdomain 的电子邮件别名,这意味着我可以从 sendToAliases 获得 4 个电子邮件别名。但是,在部署和运行上述邮件文件后,我无法收到任何电子邮件。谁能给我建议吗?
谢谢。
最佳答案
- 您检查过日志文件吗?
- 运行程序时是否遇到任何异常或错误?
- 你有SMTP吗?服务器在本地主机中运行?
- SMTP 服务器是否接受来自本地主机的连接?
- 您可以使用普通电子邮件客户端通过该服务器发送电子邮件并以某种方式接收它们吗?
- 尝试使您的程序成为独立的命令行程序并尝试执行它
您似乎在 message.setSubject("Email Details Sending);
中缺少引号。您确定您的 servlet 确实可以编译吗?
关于java - 如何通过本地主机从 JavaMail 发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2088547/