मैं php का उपयोग करके पुराने संदेशों को हटाने के लिए IMAP वेबमेल खाते तक पहुँचने का प्रयास कर रहा हूँ। मेरे पास अब तक की स्क्रिप्ट है:

<?php

$del = new DateTime();
$del->modify('-1 month');

$mbox = imap_open("{imap.test.com:993/imap/ssl}INBOX", "username", "password")
 or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in INBOX
$result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
foreach ($result as $overview) {
    $date = $overview->date;
    $date = DateTime::createFromFormat('D, d M Y H:i:s O', $date); 

    if($date<$del) {
        imap_delete($mbox,$overview->msgno);
    }

}   
imap_expunge($mbox);
imap_close($mbox);
?>

कोड अब सही है। लेकिन वेब होस्टिंग सेवा अपने IMAP सर्वर को स्थानीयहोस्ट से स्क्रिप्टेड एक्सेस की अनुमति नहीं देती है

0
Morten Repsdorph Husfeldt 21 नवम्बर 2015, 00:13

2 जवाब

सबसे बढ़िया उत्तर

आपको इस पंक्ति पर अर्धविराम की आवश्यकता है:

imap_expunge($mbox);

जब PHP को पार्स नहीं किया जा सकता है तो यह 500 त्रुटि देता है।

3
wogsland 20 नवम्बर 2015, 21:23

इसे समाप्त करने से पहले हटाने के लिए इसे चिह्नित करने का प्रयास करें, जो मेरे लिए काम करता है।

imap_delete($mbox, 1);

imap_expunge($mbox);
0
g4ost 6 जुलाई 2018, 17:08