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 では、すべてのメールを含むという名前のフォルダーがあることがわかりました。