imap_mail_compose

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

imap_mail_composeCrea un mensaje MIME

Descripción

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

Crea un mensaje MIME basado en el sobre envelope y las secciones bodies.

Parámetros

envelope

Un array asociativo que contiene los campos de los encabezados. Las claves válidas son: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc" y "message_id", que definen los encabezados respectivos al string dado. Para definir encabezados adicionales, la clave "custom_headers" es soportada, que espera un array de estos encabezados, por ejemplo ["User-Agent: My Mail Client"].

bodies

Un array indexado de los cuerpos. El primer cuerpo es el cuerpo principal del mensaje; solo si es del tipo TYPEMULTIPART, los cuerpos siguientes serán tratados; estos cuerpos constituyen los cuerpos de las partes.

Estructura de un Array de un Cuerpo
Clave Tipo Descripción
type int El tipo MIME. Uno de TYPETEXT (por omisión), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL o TYPEOTHER.
encoding int El Content-Transfer-Encoding. Uno de ENC7BIT (por omisión), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE o ENCOTHER.
charset string El juego de caracteres del parámetro del tipo MIME.
type.parameters array Un array asociativo de nombre de parámetro Content-Type y sus valores.
subtype string El subtipo MIME, e.g. 'jpeg' para TYPEIMAGE.
id string El Content-ID.
description string El Content-Description.
disposition.type string El Content-Disposition, e.g. 'attachment'.
disposition array Un array asociativo de nombre de parámetro Content-Disposition y sus valores.
contents.data string La carga útil.
lines int El tamaño de la carga útil en líneas.
bytes int El tamaño de la carga útil en bytes.
md5 string La checksum MD5 de la carga útil.

Valores devueltos

Devuelve el mensaje MIME como un string, o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con 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));

?>