با استفاده از توابع IMAP در PHP، یک اسکریپت بنویسید که با اتصال به صندوق ورودی (INBOX) با imap_open و استفاده از imap_search، همهٔ ایمیلهای ارسالی از آدرس مشخصی را پیدا کند و هدرهای (From، Subject، Date) هر ایمیل را با در نظر گرفتن رمزگشایی فرمتهای MIME نمایش دهد.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:47 0.0
برای حل مسئله از imap_open برای اتصال به mailbox (مثلاً "{imap.example.com:993/imap/ssl}INBOX") و سپس از imap_search با معیارهایی مثل 'FROM "user@example.com"' استفاده کنید؛ نتیجه را بررسی کنید (false یعنی هیچ پیامی نیست)، سپس روی شناسههای برگرداندهشده حلقه زده و با imap_headerinfo یا imap_fetchheader هدرها را بگیرید و با imap_mime_header_decode و mb_convert_encoding متنهایی مثل Subject را به UTF-8 تبدیل کنید؛ در پایان اتصال را با imap_close ببندید و خطاها را با imap_errors یا imap_last_error کنترل کنید. نکتهها: معیارهای imap_search حساس به قالب تاریخ/نحو هستند، برای ایمیلهای چندبایتی حتما رمزگشایی MIME را انجام دهید و دسترسی شبکه/پورت و احراز هویت را قبل از تست بررسی کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این است که با imap_search و شرط FROM "email@example.com" میتوانید ایمیلهای ارسالی از آن آدرس را بیابید، اما قالب تاریخ و نحو شرط میتواند نتایج را تحت تاثیر قرار دهد. برای نمایش هدرهای چندبایتی، از imap_mime_header_decode استفاده کنید و متن را با mb_convert_encoding به UTF-8 تبدیل کنید. سپس با imap_headerinfo یا imap_fetchheader هدرها را بخوانید و پس از آن با imap_close بسته و خطاها را با imap_errors یا imap_last_error بررسی کنید. همچنین مطمئن شوید رشتهٔ mailbox درست است مانند "{imap.example.com:993/imap/ssl}INBOX" و پیش از اجرا، دسترسی شبکه، پورت و احراز هویت را کنترل کنید.
گزارش