Imap подсчитывает все письма учетной записи электронной почты

Я пытаюсь сосчитать все электронные письма от и электронной почты, но мой сценарий считает только письма из входящих,

кто-нибудь знает, как подсчитать все письма от почтового аккаунта, включая отправленные, спам, удаленные и т. д.

$mailcnf = "mail.office365.com:993/imap/ssl/novalidate-cert";
$conn_str = "{".$mailcnf."}INBOX";$username = '[email protected]';
$password = 'Woju6532';
$imap = imap_open($conn_str,$username,$password) or die('Cannot connect to Server: ' . imap_last_error());

echo $message_count = imap_num_msg($imap);

0

Решение

сначала используйте imap_list для просмотра списка всех доступных папок.
затем $ conn_str = «{«. $ mailcnf. «} $ mailbox» вместо почтового ящика
imap_num_msg должен вернуть количество писем в текущем почтовом ящике

0

Другие решения

Вы можете перебрать каждую папку и использовать imap_status () посчитать количество писем в каждой папке. Вот пример:

<?php
$username = '[email protected]';
$password = 'password123';

// Define the connection string:
$server = '{server.example.net:993/ssl}';

// Connect to the server:
$connection = imap_open($server, $username, $password);

// List the mailboxes:
$mailboxes = imap_list($connection, $server, '*');

// Loop through the mailboxes:
foreach($mailboxes as $mailbox) {
$status = imap_status($connection, "$mailbox", SA_ALL);
if ($status) {
echo "Mailbox: $mailbox\t\tMessages: " . $status->messages . "\n";
} else {
echo "imap_status failed: " . imap_last_error() . "\n";
}
}

// Close the connection:
imap_close($connection);
?>
0

По вопросам рекламы [email protected]