version 11.2 (Modified)
SMTP_SetPrefs (lineFeed; bodyType; lineLength) --> 整数
引数 | タイプ | 説明 | |
lineFeed | 整数 | --> | 1 = [デフォルト] 追加, 0 = 追加しない, -1 = 変更しない |
bodyType | 整数 | --> | Body-Content-Type (1 = [デフォルト] 自動検知, |
-1 = 変更しない) | |||
lineLength | 倍長整数 | --> | 一行の最大長 (0 = [デフォルト] 自動検知, |
-1 = 変更しない) | |||
戻り値 | 整数 | エラーコード |
説明
SMTP_SetPrefs コマンドは、SMTPコマンドで送信するメッセージの環境設定を行うために使用します。このコマンドはグローバルスコープを持っていて、コマンド実行後SMTPコマンドで作成されたすべてのSMTPメッセージに影響します。設定可能オプションは、SMTP_QuickSendやSMTP_Sendを使用してSMTPサーバに送信されるメールメッセージのフォーマットに影響します。環境設定はインタープロセススコープを持っていて、すべての4Dプロセスに有効です。
SMTPサーバは改行と行送り (CR/LF) のペアを行の終了と認識します。これは改行を行の終端と認識するMacintoshアプリケーションと異なる点です。
lineFeeds は整数値で、メールメッセージの本文の開業をどのように処理するか指示します。0を渡すとメッセージ本文は変更されません。開発者は独自の行送り追加処理を行うことができます。1 (デフォルト設定) を渡すと、すべての改行がCR/LFのペアに置き換えられます。-1は環境設定の現在の設定を保持します。どのオプションを選択すべきか決定できない場合、デフォルト値の1を選択すべきです。
bodyType では、送信するメッセージ本文の文字セットと (Body-Content-Type) 、メッセージ本文に適用するエンコーディング (Content-Transfer-Encoding) を、以下の表に従って指定します。たとえば“US-ASCII & 7 bit” (値 2) はメッセージ本文の文字セットとしてUS ASCIIが使用されており、4DICはそのメッセージを7 bitエンコーディングでエンコードすることを意味します。SMTP_SetPrefs コマンドは指定された文字セットを使用してメッセージ本文を変換しないことに注意してください。この変換は必要に応じてユーザが行います。文字セットの変換を強制させたい場合は SMTP_Charset コマンドの説明を参照してください。
変更しない限りデフォルトの値は1で、SMTPコマンドが自動で適当な設定をメッセージボディの内容から決定します。
-1 | 変更しない |
0 | Application & binary; エンコーディングなし |
1 | デフォルト; メッセージの内容に基づき "US-ASCII & 7bit" または "ISO-8859-1 & quotable-printable" のどちらかを選択します。 |
2 | US-ASCII & 7bit |
3 | US-ASCII & quotable-printable |
4 | US-ASCII & base64 |
5 | ISO-8859-1 & quotable-printable |
6 | ISO-8859-1 & base64 |
7 | ISO-8859-1 & 8bit |
8 | ISO-8859-1 & binary |
9 | Reserved |
10 | ISO-2022-JP (Japanese) & 7 bit |
11 | ISO-2022-KR (Korean) & 7 bit |
12 | ISO-2022-CN (Traditional & Simplified Chinese) & 7 bit |
13 | HZ-GB-2312 (Simplified Chinese) & 7 bit |
14 | Shift_JIS (Japanese) & base64 |
15 | UTF-8 & quoted-printable |
16 | UTF-8 & base64 |
lineLength は、メッセージ本文中の一行あたりの最大文字数を指定します。SMTPコマンドは最大行数に達する前の一番近い単語の切れ目に改行/行送りのペアを挿入します。どんな数値でも指定できますが、80文字以下にすることをお勧めします。-1を指定すると、現在の設定のまま変更されません。
lineLength 引数のデフォルト値は0です。この場合、SMTPコマンドは bodyType に基づき、RFCに定義された推奨値を使用します。lineLength 引数が0の場合、改行は以下の表に基づき行われます:
本文タイプ | 改行位置 |
Base64 | 76 |
Quoted-Printable | 76 |
その他 | 改行なし |
改行しないメッセージを送信すると問題が発生するシステムがあるため、改行の挿入は強く勧められます。またメッセージの配送経路途中で、メッセージフォーマットを処理できないコンピュータがあると、メッセージが拒否されることがあることも知っておいたほうがよいでしょう。
例題
以下のコードはUTF-8メッセージをquoted printableでエンコードして送信します:
$err:=SMTP_SetPrefs(-1;15;-1)
$err:=SMTP_QuickSend(...)
参照