2017-09-06 127 views
0

我對通過Plesk管理的電子郵件地址設置了一些郵件配額。使用PHP獲取Plesk郵箱信息?

但是,用戶抱怨他們的收件箱已滿或幾乎已滿時未收到通知。

所以我的想法是發送一封電子郵件給他們,當他們的收件箱大約90%已滿,所以我想知道如果我可以檢索使用PHP的郵件帳戶信息?

如果沒有,是否有另一種方法呢? (我不太熟悉控制檯命令)

+0

你正在尋找什麼信息?請儘可能精確地指定。只是說'郵件帳戶信息'太模糊了。同時指定您正在使用的平臺。視窗? Linux呢?什麼郵件軟件?最後:到目前爲止,你發現/嘗試過什麼? –

+0

主要是查找帳戶的電子郵件地址,帳戶當前使用的空間以及帳戶的配額限制,因此當用戶例如使用90mb/100mb時,我可以向他們發送一封電子郵件,告訴他們收件箱已滿。我使用的操作系統是Linux服務器上的CentOS,除了https://talk.plesk.com/threads/mailbox-notification-when-full.71666/以外,我還找不到任何特定的內容。我使用的郵件軟件是Horde – Aaranihlus

+0

有關郵箱的信息可以通過[Plesk API]獲取(https://docs.plesk.com/en-US/onyx/api-rpc/reference/managing-mail/越來越-郵件帳戶settings.34514)。要獲取當前使用的空間,我將使用[IMAP協議](http://php.net/manual/en/book.imap.php)訪問本地郵件服務器。 –

回答

1

在這個答案中,我完全跳過Plesk API,我假設你要麼將郵箱的屬性存儲在數據庫中,要硬編碼,要麼實際使用Plesk API檢索它。

這是我如何通過檢索郵箱使用的空間:

function getSpaceUsedByMailBox($username,$password) 
{ 
    // open mailbox 
    $mailBox = imap_open('{localhost:110/pop3/novalidate-cert}INBOX',$username,$password); 
    // test if successful 
    $errors = imap_errors(); 
    if ($errors === FALSE) 
    { 
    // get info 
    $info = imap_mailboxmsginfo($mailBox); 
    // give feedback 
    echo "Mailbox of $username contains ".$info->Nmsgs. 
     ' messages and is '.$info->Size.' bytes big.'; 
    // flush notices 
    imap_errors(); 
    imap_alerts(); 
    // close mailbox 
    imap_close($mailBox); 
    // return info 
    return $info; 
    } 
    // change this to proper error handling 
    echo 'ERROR: '.print_r($errors); 
    // return nothing 
    return NULL; 
} 

這只是給你一個想法。你必須適應你的編碼風格。