PHP Conference Nagoya 2025

imap_append

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

imap_appendBelirtilen posta kutusuna bir ileti ekler

Açıklama

imap_append(
    IMAP\Connection $imap,
    string $dizin,
    string $ileti,
    ?string $seçenekler = null,
    ?string $rfc2060_tarih = null
): bool

Belirtilen dizine bir ileti ekler.

Bağımsız Değişkenler

imap

IMAP\Connection nesnesi.

dizin

Posta kutusu ismi; daha fazla bilgi için imap_open() işlevine bakınız.

Uyarı

imap.enable_insecure_rsh iptal edilmedikçe bu bağımsız değişkene güvenilir olmayan verinin aktarılması güvenli değildir.

ileti

Bir dizge olarak eklenecek ileti.

Cyrus IMAP sunucusuna gönderirken, iletide satır sonu karakteri olarak "\n" değil "\r\n" kullanmalısınz, yoksa işlem başarısız olur.

seçenekler

Belirtildiği takdirde dizine bu seçenekler de yazılır.

rfc2060_tarih

Bu bağımsız değişken belirtilmişse, ekli iletinin INTERNALDATE alanına atanır. Değer, RFC2060'a uygun bir tarih dizgesi olmalıdır.

Dönen Değerler

Başarı durumunda true, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.1.0 imap bağımsız değişkeni artık IMAP\Connection nesnesi kabul ediyor, evvelce resource türünde geçerli bir imap değeri kabul ederdi.
8.0.0 seçenekler ve rfc2060_tarih artık null olabiliyor.

Örnekler

Örnek 1 - imap_append() örneği

<?php
$imap
= imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($imap);
echo
"Ekleme öncesi ileti sayısı: ". $check->Nmsgs . "\n";

imap_append($imap, "{imap.example.org}INBOX.Drafts"
, "From: me@example.com\r\n"
. "To: you@example.com\r\n"
. "Subject: test\r\n"
. "\r\n"
. "Bu bir deneme iletisidir, lütfen yok sayın.\r\n"
);

$check = imap_check($imap);
echo
"Ekleme sonrası ileti sayısı: ". $check->Nmsgs . "\n";

imap_close($imap);
?>

add a note

User Contributed Notes 3 notes

up
19
rixsta at hotmail dot com
11 years ago
Hi,

As we have been struggling with this for some time I wanted to share how we got imap_append working properly with all MIME parts including attachments. If you are sending email and also wish to append the sent message to the Sent Items folder, I cannot think of an easier way to do this, as follows:

1) Use SwiftMailer to send the message via PHP.
$message = Swift_Message::newInstance("Subject goes here");
(then add from, to, body, attachments etc)
$result = $mailer->send($message);

2) When you construct the message in step 1) above save it to a variable as follows:

$msg = $message->toString(); (this creates the full MIME message required for imap_append()!! After this you can call imap_append like this:

imap_append($imap_conn,$mail_box,$msg."\r\n","\\Seen");

I hope this helps the readers, and prevents saves people from doing what we started doing - hand crafting the MIME messages :-0
up
9
Krzysiek
9 years ago
You can use PHPMailer ( https://github.com/PHPMailer/PHPMailer/ ) with imap.

<?php
// after creating content of mail you have to run preSend() - part of send() method
$mail->send();
// and you can get whole raw message with getSentMIMEMessage() method
imap_append($imap, $mailserver.'INBOX.Sent',$mail->getSentMIMEMessage(), "\\Seen");
up
5
kaminski at istori dot com
14 years ago
The date format string to use when creating $internal_date is 'd-M-Y H:i:s O'.
To Top