我正在尝试使用JNDI发送电子邮件,但由于一些奇怪的原因,未设置from字段。
context.xml中:
<Resource name="email/user"
description="support email"
auth="Container"
type="javax.mail.Session"
username="user@server.net"
password="pass"
mail.debug="false"
mail.user="user@server.net"
mail.from="user@server.net"
mail.transport.protocol="smtp"
mail.host="mail.server.net"
mail.smtp.host="mail.server.net"
mail.smtp.auth="true"
mail.smtp.from="user@server.net"
mail.smtp.starttls.enable="true"
mail.smtp.submitter="user@server.net"/>
以及我如何将其应用到应用程序中:
Context ctx = new InitialContext();
Session userEmail = (Session) ctx.lookup("java:comp/env/email/user");
一切都很好,但是当我将这封电子邮件发送到某些服务器时,我会收到回复消息: 我们无法接受您的消息 - 缺少来自:(#5.3.0)
其他问题:
如何设置漂亮的外观? 我试过这个:
mail.from="company XYZ <user@server.net>"
但它不起作用......
答案 0 :(得分:2)
我找到了原因。问题出在消息创建中。
我错过了 messsage.setFrom();
代码:
Message message = new MimeMessage(mailSession);
message.setFrom(); //this was missing
message.setSubject(subject);
message.setContent(content, "text/html; charset=" + charset);
//... set recipients, ....
Transport.send(message);
现在我的两个问题都得到了解答。 “看起来很漂亮”现在也在运作。