imap_mail_compose

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail_compose 指定したエンベロープおよびボディセクションに基づいて MIME メッセージを作成する

説明

imap_mail_compose(array$envelope, array$bodies): string|false

指定したエンベロープ 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 の場合にだけ、ふたつめ以降の要素が処理されます。 処理された要素は、本文の一部を構成します。

body に指定する配列の構造
キー説明
typeint MIMEタイプ。 TYPETEXT (デフォルト), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL, TYPEOTHER が指定できます。
encodingintContent-Transfer-Encoding の値を指定します。 ENC7BIT (デフォルト), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE, ENCOTHER が指定できます。
charsetstringMIMEタイプの charset パラメータの値
type.parametersarrayContent-Type の名前と値を連想配列で指定します。
subtypestringMIMEサブタイプ。例: TYPEIMAGE の場合は 'jpeg'
idstringContent-ID の値
descriptionstringContent-Description の値
disposition.typestringContent-Disposition の値。例: 'attachment'
dispositionarrayContent-Disposition の名前と値を連想配列で指定します。
contents.datastringペイロード
linesintThe size of the payload in lines.
bytesintペイロードのサイズをバイト単位で指定します。
md5stringペイロードの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));

?>
To Top