メール通報で使用するエンコードライブラリの作成方法を説明します。
メール通報では標準で日本語と英語のエンコード処理を行っています。日本語と英語以外(以降、他国語と記述する)でエンコード処理を行う場合、あらかじめライブラリを用意する必要があります。
作成したライブラリはライブラリ格納場所に格納してください。
呼び出し形式
作成したライブラリは、以下の形式で呼び出されます。
【Windows版】
int ライブラリENTRY xwd_toISO(const unsigned char *mailtext, unsigned char *subject,char *charsettype, int *encoding,char *outfile, unsigned long *errcode)
【UNIX版】
int xwd_toISO(const unsigned char *mailtext, unsigned char *subject,char *charsettype, int *encoding,char *outfile,unsigned long *errcode)
パラメタ
送信するメールの本文(文字列)を格納して、ライブラリを呼び出します。文字列の最後には、'\0'が設定されています。
ライブラリでは、RFCに従い、文字列を変換後、outfileで渡すファイルに変換結果を格納します。すべてASCII文字であり、変換が必要ない場合は、この領域の文字列をoutfileで渡すファイルに出力してください。
メールの題名を格納して、ライブラリを呼び出します。文字列の最後には、'\0'が設定されています。
ライブラリではRFCに従い文字列を変換後、この領域に変換結果を格納します。文字列の最後には、'\0'を設定してください。格納できる文字列の最大は、1024バイトです。
メールの本文またはメールの題名を変換した場合、メールのヘッダの“Content-type: ”に設定する文字列を格納してください。変換の必要がない(すべてASCII文字)場合は、“us-ascii”を設定します。文字列の最後には、'\0'を設定してください。領域には、32バイトまで設定可能です。
例)韓国語の場合:“ISO-2022-KR”または“euc-kr”
“Content-Transfer-Encoding”に設定する情報のフラグを設定してください。
0:7bit
1:8bit
値が1の場合、メールのヘッダに以下の文字列を設定します。
“Content-Transfer-Encoding: 8bit”
送信するメールの本文を格納するためのファイル名を設定し、ライブラリを呼び出します。ライブラリでは、mailtextの文字列を変換後、ファイルに出力してください。ファイルにテキストの変換結果を出力する場合、以下の点に注意してください。
ファイルが存在する場合は、一度削除するか、中身を消すようにし、前回の送信内容がファイル内に残らないようにしてください。
ファイル内での改行は必ずCRLF(“\r\n”)で行ってください。(RFC準拠)
変換が必要でない(us-ascii)場合でも、必ずファイルにテキストを出力してください。
ライブラリから復帰時は必ずファイルをクローズしてください。
ファイルの入出力など、Win32ライブラリでエラーが発生した場合は、GetLastError関数の戻り値を設定してください。
復帰値
ライブラリの処理結果を、関数の復帰値により通知してください。
正常終了。
メモリ不足が発生したため、処理を中止しました。
ファイルの入出力でエラーが発生したため、処理を中止しました。
その他のエラーが発生したため、処理を中止しました。
ライブラリ格納場所
【Windows版】
| ファイル名 | 格納場所 |
---|---|---|
Windows | f3crhxdw.dll | InstDir\mpwalker\bin または環境変数 PATH に設定されているディレクトリ |
【UNIX版】
| ファイル名 | 格納場所 |
---|---|---|
Solaris | libf3crhxdw.so | /opt/systemwalker/libまたは環境変数 LD_LIBRARY_PATH に設定されているディレクトリ |
HP-UX | ||
AIX | ||
Linux | ||
Windows | f3crhxdw.dll | InstDir\mpwalker\bin または環境変数 PATH に設定されているディレクトリ同上 |
注意事項
【Windows版】
コンパイル環境として、コンパイラは、Microsoft Visual C++ 2005を、ランタイムライブラリは“マルチスレッド(DLL)”を使用してください。
LIBファイルおよびINCLUDEファイルは、同じバージョン、レベルで提供されたものを使用してください。
Systemwalker Centric Managerの動作中に本コマンドを実行した場合、すぐには設定が反映されません。設定を反映するにはSystemwalker Centric Managerを再起動してください。
Systemwalker Centric Managerの停止時に本コマンドを実行した場合、次にSystemwalker Centric Managerを起動したときに設定が反映されます。
【UNIX版】
ライブラリは、マルチスレッド対応してください。
呼び出し元はマルチスレッドです。ライブラリはマルチスレッドセーフな関数を使用して作成してください。
LIBファイルおよびINCLUDEファイルは、同じバージョン、レベルで提供されたものを使用してください。
Systemwalker Centric Managerの動作中に本コマンドを実行した場合、すぐには設定が反映されません。設定を反映するにはSystemwalker Centric Managerを再起動してください。
Systemwalker Centric Managerの停止時に本コマンドを実行した場合、次にSystemwalker Centric Managerを起動したときに設定が反映されます。
実行結果/出力形式
ライブラリが正常終了した場合、設定された情報を以下の部分と置き換えて、メールを送信します。