imap_mail_compose

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

imap_mail_composeCreate a MIME message based on given envelope and body sections

Description

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

Create a MIME message based on the given envelope and bodies sections.

Parameters

envelope

An associative array of header fields. Valid keys are: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc" and "message_id", which set the respective message headers to the given string. To set additional headers, the key "custom_headers" is supported, which expects an array of those headers, e.g. ["User-Agent: My Mail Client"].

bodies

An indexed array of bodies. The first body is the main body of the message; only if it has a type of TYPEMULTIPART, further bodies are processed; these bodies constitute the bodies of the parts.

Body Array Structure
KeyTypeDescription
typeint The MIME type. One of TYPETEXT (default), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL or TYPEOTHER.
encodingint The Content-Transfer-Encoding. One of ENC7BIT (default), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE or ENCOTHER.
charsetstringThe charset parameter of the MIME type.
type.parametersarrayAn associative array of Content-Type parameter names and their values.
subtypestringThe MIME subtype, e.g. 'jpeg' for TYPEIMAGE.
idstringThe Content-ID.
descriptionstringThe Content-Description.
disposition.typestringThe Content-Disposition, e.g. 'attachment'.
dispositionarrayAn associative array of Content-Disposition parameter names and values.
contents.datastringThe payload.
linesintThe size of the payload in lines.
bytesintThe size of the payload in bytes.
md5stringThe MD5 checksum of the payload.

Return Values

Returns the MIME message as string, or false on failure.

Examples

Example #1 imap_mail_compose() example

<?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