2

xSnippetのこのスクリプトを使用して、SSJS http://openntf.org/XSnippets.nsf/snippet.xsp?id=create-html-mails-in-ssjs-using-mime経由でメールを送信します が、特殊文字のメールアドレスは機能しません。

「to」mimeHeaderの文字セットを設定するための解決策はありますか?

var mimeRoot:NotesMIMEEntity = doc.createMIMEEntity("Body");
var mimeHeader:NotesMIMEHeader;

//set to
if (this._to.length>0) {
  mimeHeader = mimeRoot.createHeader("To");
  mimeHeader.setHeaderVal( this._to.join(","));
}
4

3 に答える 3

3

setHeaderValの代わりに、2つの引数を取るaddValText()テキストメソッドを使用してみてください。1つ目は文字列値であり、UTF-8に含めることができ、2つ目は文字セット(つまり、「UTF-8」)です。もちろん、文字列が実際にUTF-8であることを確認する必要があります。(私はSSJSに精通していないため、SSJSが内部的にthis._to.join(",")UTF-8として値を表しているかどうかはわかりません。)

詳細については、NotesMIMEHeaderクラスのドキュメントを参照してください。

于 2013-03-05T20:10:51.393 に答える
1

私の知る限り、メールヘッダーにはUS-ASCII文字のみを含める必要があります(この情報はMIME仕様に記載されています)。他の文字を含むヘッダーはエンコードする必要があります。ドミノはデフォルトでそれをエンコードしていないようです。

javax.mail.internet.MimeUtility.encodeTextの使用を試みることができますが、これにはおそらくプロジェクト(JavaMail)に追加のjarを取得する必要があります。

于 2013-03-05T08:23:38.310 に答える
0

同様の問題のためにこれをテストしましたが、@W_KはMIMEヘッダーがUTF-8であってはならないということは正しいです。私はこれを行うことになりました。これは、以前に問題が発生した場合に機能します。

後でTO/CC /BCCMIMEヘッダーに追加する電子メールアドレスをMIMEエンコードするようにしてください。これを、たとえばTony McGuckinによるemailBeanのsetSendTo()メソッドに追加しました。

import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.MimeUtility;

....

public void setSendTo(final String sendTo) {
    try {
        this.sendTo.add(MimeUtility.encodeText(sendTo.replace("[", "").replace("]", ""), "utf-8", null));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}

次に、setHeaderVal()メソッドを使用して必要なMIMEヘッダーを追加しますが、UTF-8としてエンコードする代わりに、デフォルトのエンコードを使用します(getSendTo()はすでにMIMEエンコードされた文字列を返すだけです)。

emailHeader = emailRoot.createHeader("To");
emailHeader.addValText(getSendTo());
于 2014-09-07T06:11:03.760 に答える