javax.mail from未设置

时间:2013-03-26 19:15:23

标签: javamail javax.mail

我正在尝试使用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 &lt;user@server.net&gt;"

但它不起作用......

1 个答案:

答案 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);

现在我的两个问题都得到了解答。 “看起来很漂亮”现在也在运作。