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 に指定する配列の構造
キー 説明
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($fpfilesize($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));

?>

関連キーワード:  メッセージ, エンベロープ, ボディ, セクション, 作成, string, Content, 指定, mail, int