2

PHP IMAPを使用していて、ボックス内のすべてのメールを削除したいのですが、すべてのフォルダを選択する方法が見つかりません。

次を使用して、すべてのフォルダー名を取得できますimap_listmailbox

<?php
    $folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");
?>

Yahoo の例:次のフォルダ名を返します: (受信トレイ、一括メール、下書き...)

そして、これらすべてのフォルダーに接続し、ループを使用して内部を削除できますが、次のような例mailsを常に指定する必要があるため、同時にではありません。FolderName

<?php

    $mailBox = imap_open("{imap.example.org:143}FolderName", "username", "password");
    //__________________________________________^

    $mailsIds = imap_search($mailBox, 'ALL');

    foreach($mailsIds as $mailId)
        imap_delete($mailBox, $mailId);

    imap_expunge($mailBox);

?>

フォルダ名なしで試してみると、たとえば:

$mailBox = imap_open("{imap.example.org:143}", "username", "password");

それはデフォルトのフォルダを選択しますINBOX

私が試してみるALL、例えば:

$mailBox = imap_open("{imap.example.org:143}ALL", "username", "password");

それは何も返さない。

注 :[Gmail]/Tous les messages GMAIL では、すべてのメールを含むという名前のフォルダーがあることがわかりました。

4

0 に答える 0