PHP 8.4.2 Released!

imap_mail_compose

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

imap_mail_composeZarfı ve gövdesi belirtilen MIME iletisini oluşturur

Açıklama

imap_mail_compose(array $zarf, array $gövdeler): string|false

Belirtilen zarf ve gövdeler bölümlerini kullanarak bir MIME iletisi oluşturur.

Bağımsız Değişkenler

zarf

Başlıkları içeren bir ilişkisel dizi. Geçerli anahtarlar: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc" ve "message_id". Bu anahtarlara ileti ile ilgili değerler atanır. Ek başlıklar ayarlamak için, bu başlıkların bir dizisini bekleyen "custom_headers" anahtarı desteklenir, ör. ["User-Agent: Posta İstemcim"].

gövdeler

Gövdeleri içeren bir ilişkisel dizi. İlk gövde, iletinin ana gövdesidir; yalnızca TYPEMULTIPART türünde ise, diğer gövdeler işlenir; bu gövdeler parçaların gövdelerini oluşturur.

Gövde dizisinin yapısı
Anahtar Tür Açıklama
type int MIME türü. TYPETEXT (öntanımlı), TYPEMULTIPART, TYPEMESSAGE, TYPEAPPLICATION, TYPEAUDIO, TYPEIMAGE, TYPEMODEL, TYPEOTHER sabitlerinden biri.
encoding int Content-Transfer-Encoding. ENC7BIT (öntanımlı), ENC8BIT, ENCBINARY, ENCBASE64, ENCQUOTEDPRINTABLE, ENCOTHER sabitlerinden biri.
charset string MIME türünün karakter kümesi.
type.parameters array Content-Type isim ve değerlerini içeren ilişkisel bir dizi.
subtype string MIME alt türü; TYPEIMAGE için 'jpeg' gibi.
id string Content-ID.
description string Content-Description.
disposition.type string Content-Disposition, örn. 'attachment'.
disposition array Content-Disposition isim ve değerlerini içeren ilişkisel bir dizi.
contents.data string İş yükü.
lines int Yüklü satır sayısı.
bytes int Yüklü bayt miktarı.
md5 string Yükün MD5 aşı.

Dönen Değerler

Dizge olarak MIME iletisi, başarısızlık durumunda false döner.

Örnekler

Örnek 1 - imap_mail_compose() örneği

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

?>

add a note

User Contributed Notes 5 notes

up
5
jvandeweghe at kipsu dot com
7 years ago
The custom_headers envelope documentation is misleading. Its not actually an "associative array", its a regular array of headers.

This is wrong:

<?php
$envelope
= [
//...
"custom_headers" => [
"X-SES-CONFIGURATION-SET" => "example",
"X-SES-MESSAGE-TAGS" => "emailType=example"
]
];
?>

This is right:

<?php
$envelope
= [
//...
"custom_headers" => [
"X-SES-CONFIGURATION-SET: example",
"X-SES-MESSAGE-TAGS: emailType=example"
]
];
?>
up
3
prices at dflytech dot com
22 years ago
The documentation above does not mention that you can use the index ["charset"] to set the character set of the messsage part.

Example:

$part1["type"]= "TEXT";
$part1["subtype"]="PLAIN";
$part1["charset"] = "koi8-r";

to send a message in Russian-koi8.

Scott =)
up
3
Los Olvidados
21 years ago
If you wish to send the output of this function, simply use it for the headers argument of imap_mail() or mail(). Keep in mind that those functions set the To: and Subject: headers, so including them in the envelope will create double entries.
up
2
thomas dot hebinck at digionline dot de
21 years ago
It is a good idea to set the date header:
$envelope['date']=date('r');
up
2
Guido
16 years ago
For some email clients its necessary first to start with the body text and end with the attachment(s). Otherwise all the parts end up in attachments, also the body text (took a while to find this).

So example #1 (above) should be switched over, like:

$body[1] = $part1;
$body[2] = $part3;
$body[3] = $part2;
To Top