version 6.8.1 (Modified)
SMTP_Charset (encodeHeaders; bodyCharset) --> 整数
引数 | タイプ | 説明 | |
encodeHeaders | 整数 | --> | -1 = 現在の設定を使用, 0 = 管理しない, |
1 = ISO-8859-1またはISO-2022-JPの場合、指定された | |||
文字セットを使用して変換、拡張文字をエンコード | |||
bodyCharset | 整数 | --> | -1 = 現在の設定を使用, 0 = 管理しない, |
1= ISO-8859-1またはISO-2022-JPの場合、指定された | |||
文字セットを使用して変換 | |||
戻り値 | 整数 | エラーコード |
説明
SMTP_Charset コマンドは、SMTP_QuickSend や SMTP_Send コマンドでメッセージを送信する際に、拡張文字を含むメッセージをサポートするために自動で変換処理が行われるよう設定します。このコマンドが呼び出されないか引数に0が渡されると、バージョン 6.7以降の4D Internet Commandsはバージョン6.5.xと同様に動作します。
SMTP_Charset コマンドは、まずメッセージヘッダとボディの変換にSMTP_SetPrefsのbodyType 引数を適用するかを指定し、次に拡張文字を含むヘッダをRFC#1342で定義された“=?ISO-8859-1?Q?Test=E9?= …”のシンタックスでエンコードするかを指定します。このコマンドはインタープロセススコープを持っていて、このコマンド実行後はすべての4Dプロセスで SMTP_QuickSend and SMTP_Sendを使用して送信されるメッセージに影響します。
このコマンドは件名やメールアドレスに拡張文字が含まれる場合に有効です (たとえば“=?ISO-8859-1?Q?Test=E9?= <test@n.net >”のようなアドレスのエンコーディング)。
メッセージヘッダにより (件名ヘッダを除き常にBase64に設定され、SMTP_SetPrefsのbodyType 引数値に基づく)、エンコーディングは以下のように管理されます:
・Subject, Comment (“非構造化ヘッダ”): 拡張文字を含む場合、文字列全体がエンコードされる。
・From, To, CC, Bcc, Sender, ReplyTo, InReplyTo (“構造化ヘッダ”):
- 山括弧 (“<”, “>”) に挟まれたテキストはメールアドレスとして認識され、エンコードされません。 | |
- SPC < > ( ) @ , ; : " / ? . = などの特別文字や区切り文字はエンコードされません。 | |
- 特別文字や区切り文字に挟まれた文字列は、拡張文字が含まれていればエンコードされます。 |
アドレスの例:
- someone@somewhereはエンコードされません | |
- Michele <michele@somewhere>, Micheleのみエンコードされます |
encodeHeadersは、メッセージ送信時のヘッダの変換処理の方法とエンコーディングを指定する引数です。デフォルト値は0です。
・-1: | 現在の設定を使用 |
・0: | 管理しない |
・1: | - SMTP_SetPrefsのbodyType 引数が文字コードISO-8859-1またはISO-2022-JPに |
設定されている場合、ヘッダはその文字セットを使用して変換されます。 | |
- そうでない場合、指定されている文字セットにかかわらず、ヘッダに | |
拡張文字が含まれていれば、以下のシンタックスで変換されます (RFC#1342参照) : | |
“=?SMTP_SetPrefs コマンドで指定された文字セット? Base64 Encoding?Test=E9?= …” | |
- 例外: Subjectヘッダは必要に応じて、SMTP_SetPrefs コマンドのbodyType に指定されたエンコード方法でエンコードされます。 |
Note: “X_…”で始まる拡張ヘッダはUS ASCIIのみで記述しなければなりません。
bodyCharsetは、メッセージ送信時にメッセージボディの変換に使用する文字セットを指定する引数です。デフォルト値は0です。
・-1: 現在の設定を使用
・0: 管理しない
・1: SMTP_SetPrefsのbodyType 引数が文字コードISO-8859-1またはISO-2022-JPに設定されている場合、メッセージボディはその文字セットを使用して変換されます。
例題
この例題では、件名とボディがISO-8859-1文字セットを使用して変換され、件名はRFC 1342シンタックスでエンコードされます:
SMTP_SetPrefs(1;1;0) $err:=SMTP_Charset(1;1) $err:=SMTP_QuickSend("mymail.com";"myaddress";"destination";"the euro ?";"the euro symbol is ?")
参照