PHP Conference Japan 2024

imap_append

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

imap_append將字串訊息附加到指定的信箱

描述

imap_append(
    IMAP\Connection $imap,
    字串 $folder,
    字串 $message,
    ?字串 $options = null,
    ?字串 $internal_date = null
): 布林

將字串 message 附加到指定的 folder

參數

imap

一個 IMAP\Connection 實例。

folder

信箱名稱,詳情請參閱 imap_open()

警告

將不受信任的資料傳遞給此參數是*不安全的*,除非已停用 imap.enable_insecure_rsh

message

要附加的訊息,以字串表示

與 Cyrus IMAP 伺服器通訊時,您必須使用 "\r\n" 作為行尾終止符號,而不是 "\n",否則操作將會失敗

options

如果提供,options 也會被寫入 folder

internal_date

如果設定此參數,它將在附加的訊息上設定 INTERNALDATE。此參數應為符合 rfc2060 規範中 date_time 值的日期字串。

回傳值

成功時回傳 true,失敗時回傳 false

更新日誌

版本 描述
8.1.0 imap 參數現在需要一個 IMAP\Connection 實例;以前需要一個有效的 imap 資源
8.0.0 optionsinternal_date 現在可以為 null。

範例

範例 #1 imap_append() 範例

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

$check = imap_check($imap);
echo
"附加前的訊息數量:". $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"
. "this is a test message, please ignore\r\n"
);

$check = imap_check($imap);
echo
"附加後的訊息數量:". $check->Nmsgs . "\n";

imap_close($imap);
?>

新增註記

使用者貢獻的註記 3 則註記

rixsta at hotmail dot com
11 年前
嗨,

由於我們已經為此努力了一段時間,我想分享我們如何讓 imap_append 正確處理所有 MIME 部分,包括附件。如果您正在發送電子郵件,並且還希望將發送的郵件附加到「已發送郵件」資料夾,我想不出比以下方法更簡單的方法:

1) 使用 SwiftMailer 透過 PHP 發送郵件。
$message = Swift_Message::newInstance("這裡是主旨");
(然後新增寄件者、收件者、內文、附件等)
$result = $mailer->send($message);

2) 在步驟 1) 中建構訊息時,將其儲存到變數中,如下所示

$msg = $message->toString(); (這會建立 imap_append() 所需的完整 MIME 訊息!!之後,您可以像這樣呼叫 imap_append

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

我希望這能幫助讀者,並防止人們像我們一開始那樣,手動製作 MIME 訊息 :-0
Krzysiek
9 年前
您可以將 PHPMailer ( https://github.com/PHPMailer/PHPMailer/ ) 與 imap 搭配使用。

<?php
// 建立郵件內容後,您必須執行 preSend() - send() 方法的一部分
$mail->send();
// 您可以使用 getSentMIMEMessage() 方法取得完整的原始郵件
imap_append($imap, $mailserver.'INBOX.Sent',$mail->getSentMIMEMessage(), "\\Seen");
kaminski at istori dot com
14 年前
建立 $internal_date 時使用的日期格式字串為 'd-M-Y H:i:s O'。
To Top