1

メールの本文を UTF-8 で取得できません。私のマークダウンレポートは問題ありません。スクリプトは実行時に機能しRStudioます。つまり、本文テキストは UTF-8 です。私の問題は、コマンド ラインからスクリプトを実行すると、電子メール メッセージが Windows-1252 を使用してエンコードされることです。

電子メールのヘッダーに UTF-8 のコンテンツ タイプを指定するようにコードを設定するにはどうすればよいですか? InternetCodepage は少なくとも動作しません

以下のRコード:

## Bodytext
bodyMail <- paste(__My UTF-8 message goes here__, sep  = "")

# init com api
OutApp <- COMCreate("Outlook.Application")

# Create email
outMail = OutApp$CreateItem(0)

# Params 
outMail[["InternetCodePage"]] = "65001"
outMail[["To"]] = __your_outlook_email___
outMail[["subject"]] = "Subject_text"
outMail[["BodyFormat"]] = "2"
outMail[["HTMLBody"]] = bodyMail
outMail[["Attachments"]]$Add(__path_to_html_report__)

## send it                     
outMail$Send()
4

1 に答える 1

1

Outlook (および他のすべての IDispatch 対応 COM ライブラリ) のすべての文字列プロパティは UTF-16 です。正しいデータを渡すことを確認するのはあなたの責任です。

余談ですが、通常の ASCII 範囲外のすべての文字を HTML エンコードすることをお勧めします。この方法では、コード ページはまったく問題になりません。

于 2016-09-14T16:47:53.477 に答える