(PHP 4, PHP 5, PHP 7, PHP 8)
imap_mail_compose — 指定したエンベロープおよびボディセクションに基づいて MIME メッセージを作成する
指定したエンベロープ envelope
およびボディセクション bodies
に基づいて MIME メッセージを作成します。
envelope
ヘッダフィールドの連想配列。使えるキーは "remail"
, "return_path"
, "date"
, "from"
, "reply_to"
, "in_reply_to"
, "subject"
, "to"
, "cc"
, "bcc"
。 "message_id"
。 これらの値は、連想配列の値に与えられた文字列でそれぞれのヘッダを設定します。 さらに追加のヘッダを設定する用途として、 "custom_headers"
がサポートされています。 ここには、その他のヘッダの連想配列を指定します。例: ["User-Agent: My Mail Client"]
bodies
本文の配列。 配列の最初の要素が、メッセージの中心部分です。 TYPEMULTIPART
の場合にだけ、ふたつめ以降の要素が処理されます。 処理された要素は、本文の一部を構成します。
キー | 型 | 説明 |
---|---|---|
type | int | MIMEタイプ。 TYPETEXT (デフォルト), TYPEMULTIPART , TYPEMESSAGE , TYPEAPPLICATION , TYPEAUDIO , TYPEIMAGE , TYPEMODEL , TYPEOTHER が指定できます。 |
encoding | int | Content-Transfer-Encoding の値を指定します。 ENC7BIT (デフォルト), ENC8BIT , ENCBINARY , ENCBASE64 , ENCQUOTEDPRINTABLE , ENCOTHER が指定できます。 |
charset | string | MIMEタイプの charset パラメータの値 |
type.parameters | array | Content-Type の名前と値を連想配列で指定します。 |
subtype | string | MIMEサブタイプ。例: TYPEIMAGE の場合は 'jpeg' |
id | string | Content-ID の値 |
description | string | Content-Description の値 |
disposition.type | string | Content-Disposition の値。例: 'attachment' |
disposition | array | Content-Disposition の名前と値を連想配列で指定します。 |
contents.data | string | ペイロード |
lines | int | The size of the payload in lines. |
bytes | int | ペイロードのサイズをバイト単位で指定します。 |
md5 | string | ペイロードのMD5チェックサム |
MIME メッセージを文字列として返します。 失敗した場合に false
を返します
例1 imap_mail_compose() の例
<?php
$envelope["from"]= "joe@example.com";
$envelope["to"] = "foo@example.com";
$envelope["cc"] = "bar@example.com";
$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";
$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);
$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;
$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";
$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;
echo nl2br(imap_mail_compose($envelope, $body));
?>