GeneXusのメール送信機能で文字化け
GeneXus15からか、GeneXusのメール機能を普通に使って送信をすると
メーラーによっては本文が文字化けするようになってしまいました。
GeneXusのメール送信機能
Java1.8
Tomcat8.5
文字化けするのはOutlookが代表です。
Notesのメーラーも一部文字化けしました。
WEBブラウザでのGmailは文字化けしませんでした。
ちなみに添付ファイルに日本語のファイル名を設定すると、
「無題のファイル00046.dat」といった名前に変換されてしまいました。
メーラーによって名前の部分は変わるようです。
※GeneXusでの記述がテキストメールの場合に発生します
&PI_MAIL_MESSAGE.Text = 'テストメールです。テキスト'
Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?=
Content-Type: text/plain; charset=MS932
件名はUTF-8ですが、本文がMS932となっており、
メーラーによっては文字コードが複数設定されていると、文字化けさせてしまうようです。
※GeneXusでの記述をHTMLメールにすると
&PI_MAIL_MESSAGE.HTMLText = 'テストメールです。HTML'
Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?=
Content-Type: text/html; charset=utf-8
このような形となり、文字化けはしませんが、
添付ファイルは「無題のファイル000XX.dat」という形のままです。
Tomcat側の設定で調整することで、対応できます。
Tomcatの起動オプションで、下記設定を行う。
CATALINA_OPTS=
-Dmail.mime.encodefilename=true
-Dmail.mime.charset=UTF-8
【Windowsの場合】
Configure TomcatのJava→Java Optionsに下記を追加して再起動
-Dmail.mime.encodefilename=true
-Dmail.mime.charset=UTF-8
【Linuxの場合】
下記内容をtomcat8/bin/ディレクトリ内のsetenv.shに記述。setenv.shが無ければ作成して記述
setenv.shはcatalina.shから呼ばれる(ファイルが存在する場合のみ呼ばれるようになっている)
#!/bin/sh
CATALINA_OPTS="-Dmail.mime.encodefilename=true -Dmail.mime.charset=UTF-8"
※LinuxはTomcatの起動の仕方(sh実行か、サービス実行か 等)によって
設定方法が変わりますので、ご注意ください。
これでテキストメールでも、OutLoockでも
文字化け、添付ファイル変換が解消されました。
メーラーによっては本文が文字化けするようになってしまいました。
GeneXusのメール送信機能
環境と現象
GeneXus16U2Java1.8
Tomcat8.5
文字化けするのはOutlookが代表です。
Notesのメーラーも一部文字化けしました。
WEBブラウザでのGmailは文字化けしませんでした。
ちなみに添付ファイルに日本語のファイル名を設定すると、
「無題のファイル00046.dat」といった名前に変換されてしまいました。
メーラーによって名前の部分は変わるようです。
※GeneXusでの記述がテキストメールの場合に発生します
&PI_MAIL_MESSAGE.Text = 'テストメールです。テキスト'
原因
メールヘッダーを見ると分かります。Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?=
Content-Type: text/plain; charset=MS932
件名はUTF-8ですが、本文がMS932となっており、
メーラーによっては文字コードが複数設定されていると、文字化けさせてしまうようです。
※GeneXusでの記述をHTMLメールにすると
&PI_MAIL_MESSAGE.HTMLText = 'テストメールです。HTML'
Subject: =?UTF-8?B?44OG44K544OI44Oh44O844Or?=
Content-Type: text/html; charset=utf-8
このような形となり、文字化けはしませんが、
添付ファイルは「無題のファイル000XX.dat」という形のままです。
対応方法
残念ながらGeneXus側で件名や本文、添付ファイルの文字コードを調整することは出来ず、Tomcat側の設定で調整することで、対応できます。
Tomcatの起動オプションで、下記設定を行う。
CATALINA_OPTS=
-Dmail.mime.encodefilename=true
-Dmail.mime.charset=UTF-8
【Windowsの場合】
Configure TomcatのJava→Java Optionsに下記を追加して再起動
-Dmail.mime.encodefilename=true
-Dmail.mime.charset=UTF-8
【Linuxの場合】
下記内容をtomcat8/bin/ディレクトリ内のsetenv.shに記述。setenv.shが無ければ作成して記述
setenv.shはcatalina.shから呼ばれる(ファイルが存在する場合のみ呼ばれるようになっている)
#!/bin/sh
CATALINA_OPTS="-Dmail.mime.encodefilename=true -Dmail.mime.charset=UTF-8"
※LinuxはTomcatの起動の仕方(sh実行か、サービス実行か 等)によって
設定方法が変わりますので、ご注意ください。
これでテキストメールでも、OutLoockでも
文字化け、添付ファイル変換が解消されました。
コメント
コメントを投稿