0

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");

そして、すべてが正常ですが、この電子メールを一部のサーバーに送信すると、返信メッセージが表示されます:メッセージ を受け入れることができません-欠落していますFrom:(#5.3.0)

追加の質問:

見栄えを良くする方法は?私はこれを試しました:

mail.from="company XYZ &lt;user@server.net&gt;"

しかし、それは機能しません...。

4

1 に答える 1

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

今、私の両方の質問に答えています。「見栄えの良い」も現在機能しています。

于 2013-03-26T19:45:15.473 に答える