खोज…
IMAP एक्सटेंशन स्थापित करें
PHP में IMAP फ़ंक्शन का उपयोग करने के लिए आपको IMAP एक्सटेंशन इंस्टॉल करना होगा:
PHP5 के साथ डेबियन / उबंटू
sudo apt-get install php5-imap
sudo php5enmod imap
PHP7 के साथ डेबियन / उबंटू
sudo apt-get install php7.0-imap
यम आधारित डिस्ट्रो
sudo yum install php-imap
Php5.6 के साथ मैक ओएस एक्स
brew reinstall php56 --with-imap
मेलबॉक्स से कनेक्ट करना
IMAP खाते के साथ कुछ भी करने के लिए आपको पहले इसे कनेक्ट करना होगा। ऐसा करने के लिए आपको कुछ आवश्यक पैरामीटर निर्दिष्ट करने की आवश्यकता है:
- मेल सर्वर का सर्वर नाम या आईपी पता
- जिस पोर्ट पर आप कनेक्ट करना चाहते हैं
- IMAP 143 या 993 (सुरक्षित) है
- पीओपी 110 या 995 (सुरक्षित) है
- SMTP 25 या 465 (सुरक्षित) है
- NNTP 119 या 563 (सुरक्षित) है
- कनेक्शन झंडे (नीचे देखें)
झंडा | विवरण | विकल्प | चूक |
---|---|---|---|
/service=service | किस सेवा का उपयोग करें | imap, pop3, nntp, smtp | imap |
/user=user | दूरस्थ उपयोगकर्ता नाम सर्वर पर लॉगिन के लिए | ||
/authuser=user | रिमोट प्रमाणीकरण उपयोगकर्ता; यदि निर्दिष्ट किया जाता है तो यह उपयोगकर्ता का नाम है जिसका पासवर्ड प्रयोग किया जाता है (जैसे प्रशासक) | ||
/anonymous | अनाम उपयोगकर्ता के रूप में रिमोट एक्सेस | ||
/debug | अनुप्रयोग के डिबग लॉग में रिकॉर्ड प्रोटोकॉल टेलीमेटरी | विकलांग | |
/secure | नेटवर्क पर प्लेनटेक्स्ट पासवर्ड ट्रांसमिट न करें | ||
/norsh | प्रचारित IMAP सत्र को स्थापित करने के लिए rsh या ssh का उपयोग न करें | ||
/ssl | सत्र को एन्क्रिप्ट करने के लिए सिक्योर सॉकेट लेयर का उपयोग करें | ||
/validate-cert | टीएलएस / एसएसएल सर्वर से प्रमाण पत्र | सक्षम | |
/novalidate-cert | यदि सर्वर स्व-हस्ताक्षरित प्रमाण पत्र का उपयोग करता है, तो टीएलएस / एसएसएल सर्वर से प्रमाण पत्र को मान्य नहीं करना चाहिए। सावधानी से प्रयोग करें | विकलांग | |
/tls | सत्र को एन्क्रिप्ट करने के लिए स्टार्ट-टीएलएस का उपयोग बल, और इसका समर्थन नहीं करने वाले सर्वर से कनेक्शन को अस्वीकार करें | ||
/notls | सत्र को एन्क्रिप्ट करने के लिए स्टार्ट-टीएलएस न करें, यहां तक कि उन सर्वरों के साथ भी जो इसका समर्थन करते हैं | ||
/readonly | केवल पढ़ने के लिए खुला मेलबॉक्स का अनुरोध करें (केवल IMAP, NNTP पर ध्यान न दिया जाए, और SMTP और POP3 के साथ एक त्रुटि) |
आपका कनेक्शन स्ट्रिंग कुछ इस तरह दिखेगा:
{imap.example.com:993/imap/tls/secure}
कृपया ध्यान दें कि यदि आपके कनेक्शन स्ट्रिंग में कोई भी अक्षर गैर- ASCII है तो इसे utf7_encode ($ string) के साथ एन्कोड किया जाना चाहिए।
मेलबॉक्स से कनेक्ट करने के लिए, हम imap_open कमांड का उपयोग करते हैं जो एक स्ट्रीम की ओर इशारा करते हुए संसाधन मान लौटाता है:
<?php
$mailbox = imap_open("{imap.example.com:993/imap/tls/secure}", "username", "password");
if ($mailbox === false) {
echo "Failed to connect to server";
}
मेलबॉक्स में सभी फ़ोल्डरों की सूची बनाएं
एक बार जब आप अपने मेलबॉक्स से कनेक्ट हो जाते हैं, तो आप अंदर एक नज़र रखना चाहेंगे। पहली उपयोगी कमांड imap_list है । पहला पैरामीटर वह संसाधन है जिसे आपने imap_open
से हासिल किया है, दूसरा आपका मेलबॉक्स स्ट्रिंग है और तीसरा एक फजी सर्च स्ट्रिंग है ( *
इसका उपयोग किसी भी पैटर्न से मेल खाने के लिए किया जाता है)।
$folders = imap_list($mailbox, "{imap.example.com:993/imap/tls/secure}", "*");
if ($folders === false) {
echo "Failed to list folders in mailbox";
} else {
print_r($folders);
}
आउटपुट को इसके समान दिखना चाहिए
Array
(
[0] => {imap.example.com:993/imap/tls/secure}INBOX
[1] => {imap.example.com:993/imap/tls/secure}INBOX.Sent
[2] => {imap.example.com:993/imap/tls/secure}INBOX.Drafts
[3] => {imap.example.com:993/imap/tls/secure}INBOX.Junk
[4] => {imap.example.com:993/imap/tls/secure}INBOX.Trash
)
इन परिणामों को फ़िल्टर करने के लिए आप तीसरे पैरामीटर का उपयोग कर सकते हैं:
$folders = imap_list($mailbox, "{imap.example.com:993/imap/tls/secure}", "*.Sent");
और अब परिणाम में केवल प्रविष्टियाँ .Sent
हैं। नाम में मौजूद:
Array
(
[0] => {imap.example.com:993/imap/tls/secure}INBOX.Sent
)
नोट : *
फ़ज़ी खोज के रूप में *
का उपयोग करके सभी मैच पुनरावर्ती रूप से वापस आ जाएंगे। यदि आप %
उपयोग करते हैं तो यह निर्दिष्ट फ़ोल्डर में केवल मैचों से वापस आ जाएगा।
मेलबॉक्स में संदेश ढूँढना
आप imap_headers का उपयोग करके मेलबॉक्स में सभी संदेशों की एक सूची वापस कर सकते हैं।
<?php
$headers = imap_headers($mailbox);
परिणाम निम्न पैटर्न के साथ तार की एक सरणी है:
[FLAG] [MESSAGE-ID])[DD-MM-YYY] [FROM ADDRESS] [SUBJECT TRUNCATED TO 25 CHAR] ([SIZE] chars)
यहाँ एक नमूना है कि प्रत्येक पंक्ति क्या देख सकती है:
A 1)19-Aug-2016 [email protected] Message Subject (1728 chars)
D 2)19-Aug-2016 [email protected] RE: Message Subject (22840 chars)
U 3)19-Aug-2016 [email protected] RE: RE: Message Subject (1876 chars)
N 4)19-Aug-2016 [email protected] RE: RE: RE: Message Subje (1741 chars)
प्रतीक | झंडा | अर्थ |
---|---|---|
ए | उत्तर | संदेश का जवाब दिया गया है |
डी | हटाए गए | संदेश हटा दिया गया है (लेकिन हटाया नहीं गया) |
एफ | चिह्नित किए गए | संदेश को ध्यान के लिए ध्वजांकित / अभिनीत किया जाता है |
एन | नया | संदेश नया है और देखा नहीं गया है |
आर | हाल का | संदेश नया है और देखा गया है |
यू | अपठित ग | संदेश पढ़ा नहीं गया है |
एक्स | प्रारूप | संदेश एक मसौदा है |
ध्यान दें कि इस कॉल को चलने में उचित समय लग सकता है और यह एक बहुत बड़ी सूची लौटा सकती है।
एक विकल्प व्यक्तिगत संदेशों को लोड करने के लिए है जैसा कि आपको उनकी आवश्यकता है। आपके ईमेल प्रत्येक को 1 से एक आईडी (सबसे पुराना) imap_num_msg($mailbox)
के मान में imap_num_msg($mailbox)
।
ईमेल को सीधे एक्सेस करने के लिए कई कार्य हैं, लेकिन सबसे सरल तरीका imap_header
का उपयोग imap_header
जो संरचित हेडर लौटाता है:
<?php
$header = imap_headerinfo($mailbox , 1);
stdClass Object
(
[date] => Wed, 19 Oct 2011 17:34:52 +0000
[subject] => Message Subject
[message_id] => <04b80ceedac8e74$51a8d50dd$0206600a@user1687763490>
[references] => <[email protected]>
[toaddress] => Some One Else <[email protected]>
[to] => Array
(
[0] => stdClass Object
(
[personal] => Some One Else
[mailbox] => someonelse
[host] => example.com
)
)
[fromaddress] => Some One <[email protected]>
[from] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[reply_toaddress] => Some One <[email protected]>
[reply_to] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[senderaddress] => Some One <[email protected]>
[sender] => Array
(
[0] => stdClass Object
(
[personal] => Some One
[mailbox] => someone
[host] => example.com
)
)
[Recent] =>
[Unseen] =>
[Flagged] =>
[Answered] =>
[Deleted] =>
[Draft] =>
[Msgno] => 1
[MailDate] => 19-Oct-2011 17:34:48 +0000
[Size] => 1728
[udate] => 1319038488
)