1

私は Apache Commons Mail を使用しており、メールの件名 (および文字エンコードなどのその他の設定) がまったく使用されていないことを認識しました。

    props.put("mail.smtp.host", "localhost");
    Session s = Session.getInstance(props, null);
    s.setDebug(true);

    MimeMessage message = new MimeMessage(s);
    message.setHeader("Content-Type", "text/plain; charset=UTF-8");
    message.addHeader("Content-Transfer-Encoding", "quoted-printable");
    message.setFrom(new InternetAddress("me@home.com"));
    message.addRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress("you@abroad.com"));
    String subj = MimeUtility.encodeText("");
    message.setSubject("my subject with specials äöü");

    message.setText("Some text with special äöü");
    Transport.send(message);

デバッグ出力は次を示します。

 DEBUG SMTP: useEhlo true, useAuth false
 DEBUG SMTP: trying to connect to host "localhost", port 25, isSSL false
 220 mydomain ESMTP Postfix
 DEBUG SMTP: connected to host "localhost", port: 25

 EHLO MyComputer
 250-PIPELINING
 250-SIZE 10485760
 250-VRFY
 250-ETRN
 250-ENHANCEDSTATUSCODES
 250-8BITMIME
 250 DSN
 DEBUG SMTP: Found extension "PIPELINING", arg ""
 DEBUG SMTP: Found extension "SIZE", arg "10485760"
 DEBUG SMTP: Found extension "VRFY", arg ""
 DEBUG SMTP: Found extension "ETRN", arg ""
 DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
 DEBUG SMTP: Found extension "8BITMIME", arg ""
 DEBUG SMTP: Found extension "DSN", arg ""
 DEBUG SMTP: use8bit false
 MAIL FROM:<me@home.com>
 250 2.1.0 Ok
 RCPT TO:<you@abroad.com>
 250 2.1.5 Ok
 DEBUG SMTP: Verified Addresses
 DEBUG SMTP:   you@abroad.com
 DATA
 354 End data with <CR><LF>.<CR><LF>

 Some text with specials =C3=A4=C3=B6=C3=BC
 .
 250 2.0.0 Ok: queued as 9F623345F99
 QUIT
 221 2.0.0 Bye

私の知る限り、SUBJECT は SMTP メッセージの DATA セクションに設定する必要があります。

どうすればこれを修正できますか?

4

2 に答える 2

1

これを見ると(キャッシュされたリンクで申し訳ありませんが、Oracleはこのリンクを(削除)移動したか何かを持っているようです):

どうやら Apache Commons が Java Mail に何らかの影響を与えているようです。あなたが提供した例は、メールを送信する標準的な Java Mail の方法のようです。したがって、次のいずれかを試すことができますか?

于 2010-11-18T00:07:46.640 に答える
0

私も同じ問題を抱えてる。

ライブラリを削除します

<artifactId>geronimo-javamail_1.4_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>

私のプロジェクトから。

それは私のための仕事です !

于 2015-05-15T13:38:29.837 に答える