ΠΡΡΠ°ΡΠΊΠΈΠ²Π°Π΅ΠΌ ΠΏΠΈΡΡΠΌΠ° ΠΈΠ· ΠΏΠΎΡΡΡ. Π Π°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ IMAP. Π Π°ΡΡΡΠ»ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ Π½Π° PHP Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ imap ΡΡΠ½ΠΊΡΠΈΠΉ ΠΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΈΡΠ΅ΠΌ php imap
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ SquirrelMail ΠΈΠ»ΠΈ Roundcube . ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π²ΡΠ±Π΅ΡΠ΅ΡΠ΅, Π·Π½Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠΎΠΉ IMAP Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ IMAP Π² PHP ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π²ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ . ΠΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ° Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ.Π΄β¦
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ URL Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
- func β ΡΠΈΠΏ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΡΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ, ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ, ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅)
- folder - ΠΈΠΌΡ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅, ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅, ΡΠΏΠ°ΠΌ)
- uid β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ $ _GET ΠΈ switch ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ IMAP
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ IMAP, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ imap_connect() , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ .
ΠΡΡΡ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΡΠΈΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΏΠΎΡΡ Π² ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠΌΡ Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΡΡΡ.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Π΄Π»Ρ ΠΏΠ°ΠΏΠΊΠΈ ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ²ΡΡ ΡΠ»ΡΠΆΠ±:
- Gmail {imap.gmail.com: 993/imap/ssl} INBOX
- Yahoo {imap.mail.yahoo.com: 993/imap/ssl} INBOX
- AOL {imap.aol.com: 993/imap/ssl} INBOX
ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ SSL, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΡΡΠΈΡΡ Β«SSLΒ» ΠΈΠ· ΡΡΡΠΎΠΊΠΈ. ΠΡΡΠ³ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Β«NOVALIDATE-CERTΒ».
Π‘ ΠΎΡΠΊΡΡΡΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²ΠΈΠ΄ΠΎΠ² Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° Π² Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅
- ΠΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π°Π²ΡΠΎΡΠ°
ΠΠ°ΠΏΠΊΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅ , ΠΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ , ΠΡΡΠΎΡ ΠΈ Π‘ΠΏΠ°ΠΌ β ΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ Π²ΠΈΠ΄Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΎ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΡΠΈΡ ΠΏΠ°ΠΏΠΊΠ°Ρ , ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Β«INBOXΒ» (ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅) Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΡΡΠΈ ΡΠ°Π½Π΅Π΅. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π΄Π»Ρ ΡΠΏΠ°ΠΌΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Β«SpamΒ» (Π‘ΠΏΠ°ΠΌ) Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ. ΠΠΎ Ρ ΠΎΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Π‘ΠΏΠ°ΠΌ Π² ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ, Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΏΠΎΠΊ Π² ΡΠΎΠ½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ Π²ΡΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΏΠ°ΠΏΠΊΠΈ Π² ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ imap_list() .
"; foreach ($folders as $folder) { $folder = str_replace("{imap.gmail..php?folder=" . $folder . "&func=view">" . $folder . ""; } echo "";
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Ρ imap_open() Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° imap_list() . ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΉΡΠΈ ΠΏΡΡΡ (Π±Π΅Π· ΠΏΠ°ΠΏΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«INBOXΒ»). Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π·Π°ΠΏΡΠΎΡ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΏΠΎΠΊ.
Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΠΏΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌ ΡΡΠΈΠΊΠ΅.
Π‘Π½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ imap_num_msg() . ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ imap_header() , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 20 ΠΏΠΈΡΠ΅ΠΌ:
($numMessages - 20); $i--) { $header = imap_header($imap, $i); $fromInfo = $header->from; $replyInfo = $header->reply_to; $details = array("fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host)) ? $fromInfo->mailbox . "@" . $fromInfo->host: "", "fromName" => (isset($fromInfo->personal)) ? $fromInfo->personal: "", "replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host)) ? $replyInfo->mailbox . "@" . $replyInfo->host: "", "replyName" => (isset($replyTo->personal)) ? $replyto->personal: "", "subject" => (isset($header->subject)) ? $header->subject: "", "udate" => (isset($header->udate)) ? $header->udate: ""); $uid = imap_uid($imap, $i); echo "
- ";
echo "
- From:" . $details["fromName"]; echo " " . $details["fromAddr"] . " "; echo "
- Subject: " . $details["subject"] ..php?folder=" . $folder . "&uid=" . $uid ..php?folder=" . $folder . "&uid=" . $uid . "&func=delete">Delete "; echo "
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ $Imap Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΡΠΊΡΡΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 20 ΠΏΠΈΡΠ΅ΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΡΠ»Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ imap_num_msg() . Π‘Π²ΡΠ·Ρ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π΄Π°ΡΡΡΡ imap_header() , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠΈΠ½ΡΡ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ, Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΈΠΌΡ, ΡΠ΅ΠΌΠ° ΠΈ Ρ.Π΄
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½ΠΎΠΌΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ ΠΎΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ 100 ΠΏΠΈΡΠ΅ΠΌ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌ ΡΡΠΈΠΊΠ΅, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΈΡΠ»ΠΎ Π±ΡΠ΄Π΅Ρ 100, ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ 99, ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 100, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ 100.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄Π»Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ UID, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ, ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ Π½ΠΎΠΌΠ΅ΡΠ° imap_uid() UID-ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ.
ΠΡΠΎΡΠΌΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ Π΄Π΅Π»ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΠ»Π°ΡΡΡ ΠΏΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΠΈΡΡΠ» ΠΠΎΡΠ°Π΄ΠΈΡ. Π ΠΊΠ»Π°ΡΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½ΠΈΠΆΠ΅:
encoding) { case 3: return imap_base64($text); case 4: return imap_qprint($text); default: return $text; } } // multipart if ($structure->type == 1) { foreach ($structure->parts as $index => $subStruct) { $prefix = ""; if ($partNumber) { $prefix = $partNumber . "."; } $data = get_part($imap, $uid, $mimetype, $subStruct, $prefix . ($index + 1)); if ($data) { return $data; } } } } return false; } function get_mime_type($structure) { $primaryMimetype = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER"); if ($structure->subtype) { return $primaryMimetype[(int)$structure->type] . "/" . $structure->subtype; } return "TEXT/PLAIN"; }
Π€ΡΠ½ΠΊΡΠΈΡ GetBody() ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ββUID ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ IMAP. ΠΠ½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΡ Π²Π·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ get_part() Ρ ΡΠΈΠΏΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΊΠ°ΠΊ text / HTML. ΠΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π»Π΅Π³ΡΠ΅ ΡΠΈΡΠ°ΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ HTML Π²Π½ΡΡΡΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΡΡΡΡΠΊΡΡΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ imap_fetchstructure() . ΠΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UID, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ FT_UID ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ.
Π’ΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΠΏ MIME ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ get_mime_type() . ΠΡΡΡ Π²ΠΎΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² MIME, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π»:
- 0 β TEXT
- 1 β MULTIPART
- 2 β MESSAGE
- 3 β APPLICATION
- 4 β AUDIO
- 5 β IMAGE
- 6 β VIDEO
- 7 β OTHER
ΠΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠΈΠΏ MIME ΡΡΡΠΎΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΡΠΈΠΏΠΎΠ² MIME.
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΠΎΠ΄ΡΠΈΠΏΠΎΠ², ΡΠ°ΠΊ ΠΌΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΠΏΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ imap_fetchBody() , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ mime-type.
ΠΠ°ΡΠ΅ΠΌ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠΈΠΏΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΡΡΠ°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
- 0 β 7BIT
- 1 β 8BIT
- 2 β BINARY
- 3 β BASE64
- 4 β QUOTED-PRINTABLE
- 5 β OTHER
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΠΎΠ±Π·ΠΎΡΠ° ΠΎΡΠ½ΠΎΠ² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ IMAP, ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π²Π½ΡΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΏΠΎΠΊ, ΠΈ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ. ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ imap ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΎΠΉ ΠΈ ΠΎΡΠΏΠΈΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΡΠ»ΠΊΠΈ. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ°ΡΡΡΠ»ΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΉΡΠΈ Π½Π° Π½Π΅ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΡΠΌΠ°. ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ cron daemon?om. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±.
ΠΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ crond, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠΌ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡΡ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π½ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π» Π½Π° Π ΠΠ , Π±Π΅Π· ΡΡΡΠ΄Π° ΠΏΠΎΠΉΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Ρ Π½ΠΈΠΌΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠΈΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ
ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ΅ΠΌΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ
ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° Π½Π΅ΠΌ
ΠΏΠΈΡΠ΅ΠΌ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΏΠΈΡΠ΅ΠΌ Π½Π΅Ρ, ΡΠ°Π±ΠΎΡΠ° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ.
ΠΡΠ»ΠΈ ΠΏΠΈΡΡΠΌΠ° Π΅ΡΡΡ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π±ΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ
ΠΏΠΈΡΡΠΌΠ°. ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Ρ from ΠΈ subject. ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ subject
ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ
Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ°
ΠΈΠ»ΠΈ ΠΎΡΠΏΠΈΡΠΊΠ°), ΡΠΎ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ
from Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΉ), Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ
ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ. Π ΠΎΠ±ΠΎΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π½Π° Π°Π΄ΡΠ΅Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΏΠΎΠ»Π΅ from
ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ
ΡΠΊΡΠΈΠΏΡΠ°.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ
subject Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ
ΡΠ΅ΠΌ, ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±
ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈ ΠΏΠΈΡΡΠΌΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΡ.
ΠΠ°ΠΊΠΎΠ½ΡΠΈΠ² ΡΠ°Π·Π±ΠΎΡ Π²ΡΠ΅Ρ
ΠΏΠΈΡΠ΅ΠΌ,
ΠΎΠ½ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΡΠΈΠΊ.
ΠΠ΅ Π±ΡΠ΄Ρ ΡΡΠΎΠΌΠ»ΡΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΡΡΠΎ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ Π΄Π΅Π»Ρ. ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ imap_open. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π ΠΠ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΊΠΎΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ POP3 Π½Π° 110 ΠΏΠΎΡΡΡ (ΡΡΠ°Π½Π΄Π°ΡΡ). ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $my_box.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²Ρ
ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ
Π²ΡΠ΅Ρ
imap ΡΡΠ½ΠΊΡΠΈΡΡ
. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΈΠΊ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΈΡΠ΅ΠΌ.
ΠΡΠΎΠ²Π΅ΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ imap_num_msg.
$n
=
imap_num_msg
($my_box
);
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $n Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΡΠ΅ΠΌ Π² ΡΡΠΈΠΊΠ΅. Π§ΠΈΡΠ»ΠΎ
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ, ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ Π΅ΠΌΡ (Π΅ΡΠ»ΠΈ ΡΡΠΈΠΊ
ΠΏΡΡΡ).
ΠΡΠ»ΠΈ ΠΏΠΈΡΡΠΌΠ° Π΅ΡΡΡ, ΡΠΎ Π² ΡΠΈΠΊΠ»Π΅ while Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ°Π·Π±ΠΎΡ
ΠΏΠΈΡΠ΅ΠΌ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΡΡΠΌΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ Π² ΡΡΠΈΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½ΠΎΠΌΠ΅Ρ
0, ΠΊΠ°ΠΊ, ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠ»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ°
ΠΏΠΈΡΡΠΌΠ°, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $m Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, Π° ΠΏΠΎΡΠΎΠΌ Π²
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ $m++.
ΠΠ»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ Π½Π°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ: imap_header ΠΈ imap_fetch_overview. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΈΡ , ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΈΠΊΠ°, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΡΡΠΌΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $m.
Imap_header Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΠΈΡΡΠΌΠ°. Π‘ΡΠ΅Π΄ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² from, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ personal, adl, mailbox ΠΈ host. ΠΠ°Ρ ΠΈΠ· Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ mailbox ΠΈ host. ΠΠΎΠ΄ΡΡΠ°Π²Π»ΡΡ ΠΈΡ , ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π°Π΄ΡΠ΅Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΠΈΡΡΠΌΠΎ.
$h
=
$h
->
from
;
a
foreach ($h
as
$k
=>
$v
) {
$mailbox
=
$v
->
mailbox
;
$host
=
$v
->
host
;
$personal
=
$v
->
personal
;
$email
=
$mailbox
.
?
@
Β¬
.
$host
;
Imap_fetch_overview - ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ°. ΠΠ»Ρ ΡΡΠΈΡ ΠΆΠ΅ ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ imap_header Π½ΠΎ ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½ ΡΡΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ· ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ subject
foreach ($s
as
$k
=>
$v
) {
$subj
=
$v
->
subject
;
}
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π½Π°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°ΡΠΈΡΡ email ΠΈΠ· Π±Π°Π·Ρ, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ Π΅Π³ΠΎ ΡΠ°ΠΌ, ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΊΠ°ΠΊ Β«ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΡΒ», Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΡΡ 0, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΎΠ½ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° 1.
if ($subj
==
"SUBSCRIBE"
) {
mysql_query
("UPDATE subscribe
SET stat=1 WHERE email=$my_email"
);
}
mysql_query
("DELETE FROM
subscribe WHERE email = $my_email"
);
$del
=
imap_delete
($my_box
,
$m
);
}
else {
$del
=
imap_delete
($my_box
,
$m
);
}
ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΎΡΡ Π²ΡΡΠ΅,
ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΡΠΈΠΊ.
ΠΠ°Π½Π½Π°Ρ
ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π»ΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° Π ΠΠ ΠΌΠΎΠΆΠ½ΠΎ
ΠΏΠΈΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΠΉΡΡ, Π½ΠΎ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ,
ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π½Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎ ΡΠ°ΡΡΠΈ
Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ shell, ΡΠ½Ρ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ
ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ° Perl, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅β¦
ΠΠΈΡΡΠΈΠ½Π³ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ (db.php):
include
"db.php"
;
$my_box
=
imap_open
("{you.pop.host/pop3:110}"
,
"login"
,
"password"
);
$n
=
imap_num_msg
($my_box
);
$m
=
0
;
$add_text
=
"
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ "
;
$add_sbj
=
"You added!"
;
$del_text
=
"
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅
Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ
ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ
Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΡΠ»ΠΊΠΈ"
;
$err_sbj
=
"Error"
;
$headers
=
"From:
Subscribe Robot
X-mailer: PHP4
Content-type: text/plain; charset=UTF-8
"
;
if($n
!=
0
) {
while($m
++ <
$n
) {
$h
=
imap_header
($my_box
,
$m
);
$s
=
imap_fetch_overview
($my_box
,
$m
);
$h
=
$h
->
from
;
foreach
($h
as
$k
=>
$v
) {
$mailbox
=
$v
->
mailbox
;
$host
=
$v
->
host
;
$personal
=
$v
->
personal
;
$email
=
$mailbox
.
"@"
.
$host
;
$my_email
=
mysql_escape_string
($email
);
}
foreach ($s
as
$k
=>
$v
) {
$subj
=
$v
->
subject
;
}
if
($subj
==
"SUBSCRIBE"
) {
mysql_query
("UPDATE table SET
stat=1 WHERE email=$my_email"
);
//print mysql_error();
$del
=
imap_delete
($my_box
,
$m
);
mail
($email
,
$add_sbj
,
$add_text
,
$headers
);
}
elseif ($subj
==
"UNSUBSCRIBE"
) {
mysql_query
("DELETE FROM table
WHERE email = $my_email"
);
$del
=
imap_delete
($my_box
,
$m
);
mail
($email
,
$del_sbj
,
$del_text
,
$headers
);
}
else {
$del
=
imap_delete
($open_box
,
$m
);
mail
($email
,
$err_sbj
,
$err_text
,
$headers
);
}
}
$clear
=
imap_expunge
($my_box
);
}
?>
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ° β ΡΡΠΎ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ, ΡΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ: Π½Π° ΠΏΠΎΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΏΠΈΡΡΠΌΠΎ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΈΠΏΠΎΠΌ. ΠΠΎΠ²ΠΎΡΠΈΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎ Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΠ΅ β Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ Ρ Π²Π°ΠΌΠΈ, Π΄ΠΎΡΠΎΠ³ΠΈΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ, ΠΎΠΏΡΡΠΎΠΌ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΠ°ΡΡ ΠΏΠΈΡΡΠΌΠ° ΠΈΠ· ΡΡΠΈΠΊΠ°, ΡΠ°ΠΊ ΠΆΠ΅ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΠΈΡΡΠΌΠ΅ Π΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» - ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΡΠΊΠ°ΡΠ°ΡΡ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Π½Π°Π΄ Π½ΠΈΠΌ.
Π‘Π°ΠΌ Ρ Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ, ΠΈ ΡΠΎΠ³Π΄Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΎΠΏΡΡΠ° ΡΠ°Π±ΠΎΡΡ c ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π―Π½Π΄Π΅ΠΊΡΠ° ΠΏΠΎΡΡΠ°ΡΠΈΠ» ΠΌΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π½Π΅ΡΠ²ΠΎΠ² Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ΅ΡΠ²Π°Ρ ΠΌΠΎΡ ΠΎΡΠΈΠ±ΠΊΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π»Π°ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, Ρ Π½Π°ΡΠ΅Π» ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² ΡΠ΅ΡΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠΎΠΉ (ΠΏΠΎΠΌΠΎΡΡΡ) Π―Π½Π΄Π΅ΠΊΡ. ΠΠ°, ΡΠ°ΠΌ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Ρ ΠΎΡΡ Π΅Ρ ΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π»ΠΎ, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²Π°ΠΆΠ½Π°Ρ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΡΠΊΡΠΈΠΏΡΠ° (ΠΎΠ± ΡΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅). ΠΠ° ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ, ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ: Π½Π° Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎ ΠΏΠΈΡΡΠΌΠΎ Ρ ΠΏΡΠ°ΠΉΡΠΎΠΌ ΡΠΎΠ²Π°ΡΠΎΠ² Π² xls ΡΠΎΡΠΌΠ°ΡΠ΅ ΡΠ°Π· Π² ΡΡΡΠΊΠΈ, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ (ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· ΠΠ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΡΡΠΎ-ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π³Π΄Π΅-ΡΠΎ, ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ).
Π ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡΠ° β ΡΡΠΎ Π½Π°ΠΌΠ΅ΡΠΈΠΌ Π½Π°Ρ ΠΏΠ»Π°Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π΄Π΅Π²ΡΡΠΈ ΠΏΡΠ½ΠΊΡΠΎΠ²:
- ΠΠ°ΡΡΡΠΎΠΈΠΌ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ;
- ΠΠ°ΠΌΠ΅ΡΠΈΠΌ ΡΠ°ΠΌΡ ΡΡΡΡΠΊΡΡΡΡ PHP ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌΡΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²;
- ΠΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ IMAP ΠΈ Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ;
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΠΌΡΡ ΠΊ Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΠ΅ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ° ΠΈ ΠΎΡΡΠ»Π΅Π΄ΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅;
- ΠΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠ°ΠΏΠΊΡ ΠΏΠΈΡΡΠΌΠ°;
- ΠΠΎΠ»ΡΡΠΈΠΌ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠ΅Π»Π° ΠΏΠΈΡΡΠΌΠ°;
- ΠΠΎΠ»ΡΡΠΈΠΌ ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ;
- ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ;
- Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄Ρ.
Π’Π΅ΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠΌΠ½Π°Ρ, Π½ΠΎ Ρ ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΈΠ·Π»ΠΎΠΆΠΈΡΡ Π²ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎ ΠΈ ΠΏΠΎΠ½ΡΡΠ½ΠΎ. ΠΠΎΠΆΠ°Π»ΡΠΉ, ΠΏΡΠΈΡΡΡΠΏΠΈΠΌ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΡ
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ²ΠΎΡ ΠΏΠΎΡΡΡ ΠΈ Π·Π°Ρ ΠΎΠ΄ΠΈΠΌ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ IMAP ΠΈ POP3:
Π’ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ²ΠΈΠ΄ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΠΊΠ°ΠΊ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡΠ΅, Π½ΠΎ Ρ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ, ΠΈ Π½Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Ρ. ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΡΡΠ°Π²ΠΈΠΌ Π³Π°Π»ΠΎΡΠΊΠΈ ΠΊΠ°ΠΊ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅, Π΄Π»Ρ Π½Π°Ρ Π³Π»Π°Π²Π½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ» IMAP.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π΅ Π½ΡΠΆΠ½Π°, Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ (Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Sublime Text):
- tmp β ΠΏΠ°ΠΏΠΊΠ° Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π³ΡΡΠΆΠ°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠΈΡΡΠΌΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ;
- .htaccess β Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ apache;
- functions.php β ΡΡΠ΄Π° Π±ΡΠ΄Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ;
- main.css β ΡΠ°ΠΉΠ» ΡΡΠΈΠ»Π΅ΠΉ;
- index.php β ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ;
ΠΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ UTF-8 ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠ°Π·Ρ Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ».htaccess ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ:
AddDefaultCharset utf-8
AddCharset utf-8 *
ΠΡΠΎΡΠΎΠΊΠΎΠ» IMAP
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΡΠ½ΠΊΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΡΡΠΎΠΉ Π―Π½Π΄Π΅ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΠΎΠΊΠΎΠ» POP3. Π’Π°ΠΊ ΠΏΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ IMAP? ΠΠ· Π΄Π²ΡΡ ΡΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ² IMAP ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΌ ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌ POP3, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΡΠ΄ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² (ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠ΅ΠΉ), Π½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° Π²ΡΠ±ΠΎΡ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΠΉ. ΠΠΈΡΠ½ΠΎ Ρ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅ Π²ΠΈΠΆΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΡΠΌΠ°. ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» POP3 ΡΠΎ Π²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΠΊ IMAP Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΈ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IMAP
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΠΏΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Π»ΠΎΠ³ΠΈΠ½ ΠΏΠΎΡΡΡ, Π΅Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΈ Π°Π΄ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠ»ΠΈ Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½Π΅Ρ, ΡΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΠΎΠΌΠΎΡΠΈ Π―Π½Π΄Π΅ΠΊΡ. ΠΠ± ΡΡΠΎΠΌ (Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ Ρ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅) Ρ Π²ΡΡΠ΅ ΠΈ ΠΏΠΈΡΠ°Π» Π² ΡΠ΅ΡΠΈ ΠΌΠ°ΡΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², Π³Π΄Π΅ ΡΡΠ΅ΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΊΠ°Π·Π°Π½ Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ ΡΠΆΠ΅ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ β ΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ. Π― Π½Π΅ Π±ΡΠ΄Ρ Ρ ΠΎΠ΄ΠΈΡΡ Π²ΠΎΠΊΡΡΠ³ Π΄Π° ΠΎΠΊΠΎΠ»ΠΎ ΠΈ ΡΡΠ°Π·Ρ Π΄Π°ΠΌ ΠΏΡΡΠΌΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π―Π½Π΄Π΅ΠΊΡ β Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ . ΠΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠ°ΠΌΠΎΠΌΡ ΠΊΠΎΠ΄Ρ:
Header("Content-Type: text/html; charset=utf-8"); error_reporting(0); require_once("functions.php"); $mail_login = "yandex_ΠΏΠΎΡΡΠ°"; $mail_password = "ΠΏΠ°ΡΠΎΠ»Ρ_ΠΎΡ_ΠΏΠΎΡΡΡ"; $mail_imap = "{imap.yandex.ru:993/imap/ssl}"; // Π‘ΠΏΠΈΡΠΎΠΊ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΡ ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² $mail_filetypes = array("MSWORD"); $connection = imap_open($mail_imap, $mail_login, $mail_password); if(!$connection){ echo("ΠΡΠΈΠ±ΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΡΠΎΠΉ - ".$mail_login); exit; }else{ $msg_num = imap_num_msg($connection); $mails_data = array(); for($i = 1; $i <= $msg_num; $i++){ /* Π Π°Π±ΠΎΡΠ°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΠΈΡΡΠΌΠΎΠΌ ΠΈΠ· IMAP-ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ΄Π΅ΠΌ ΡΡΡ */ } } imap_close($connection);
ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ UTF-8 ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ» functions.php ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠ΅ Π±ΡΠ»Π° ΡΠ΅ΡΡ. Π ΠΌΠ°ΡΡΠΈΠ²Π΅ $mail_filetypes ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠΎΡΠΌΠ°ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ. Π’Π°ΠΊ Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ΅ΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΠΌΡΡΠΎΡ, ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ. Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ imap_open(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ ΡΠ΄Π°ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ IMAP-ΠΏΠΎΡΠΎΠΊ, Π° ΠΏΡΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΌ - false (Π½ΠΎ Π΅ΡΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ). ΠΠ°Π²Π΅ΡΡΠ°Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ imap_close() ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΈΠ΄ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΡΠ»ΠΎΠ²Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΡΠΈ ΡΠ΄Π°ΡΠ½ΠΎΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ imap_num_msg() ΡΠ·Π½Π°Π΅ΠΌ ΡΠΈΡΠ»ΠΎ ΠΏΠΈΡΠ΅ΠΌ Π½Π° ΠΏΠΎΡΡΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ², Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π²ΡΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΠΎΡΠΎΠΊΠ°. ΠΠ°Π»Π΅Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΠΊΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ ΠΏΠΎ Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅ΡΡ (Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡ 1) ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΏΠΊΠΈ ΠΏΠΈΡΡΠΌΠ°
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΏΠΊΠΈ ΠΏΠΈΡΡΠΌΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ imap_header(), Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΡΡΠΌΠ°:
// Π¨Π°ΠΏΠΊΠ° ΠΏΠΈΡΡΠΌΠ° $msg_header = imap_header($connection, $i);
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈ Π±ΡΠ΄Π΅ΠΌ Π²ΡΡΡΠ³ΠΈΠ²Π°ΡΡ Π½ΡΠΆΠ½ΡΠ΅ Π½Π°ΠΌ Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² $mails_data. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠΈΡΠ΅ΠΌ:
ΠΠ° ΡΡΠΎΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΡΡΡΡΡ, Π½ΠΎ ΡΡΠΎ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³ΡΠ°Π΅Ρ, ΡΡΠ½Π΅ΠΌ, ΡΠΎ, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅. ΠΠ°ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ - ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ°. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΈ ΡΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ. Π’Π°ΠΊΠ°Ρ ΠΆΠ΅ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΈ Ρ ΡΠ΅Π»ΠΎΠΌ ΠΏΠΈΡΡΠΌΠ° ΠΈ Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
$mails_data[$i]["time"] = time($msg_header->MailDate); $mails_data[$i]["date"] = $msg_header->MailDate; foreach($msg_header->to as $data){ $mails_data[$i]["to"] = $data->mailbox."@".$data->host; } foreach($msg_header->from as $data){ $mails_data[$i]["from"] = $data->mailbox."@".$data->host; }
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π² Π½Π°ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅: Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΊΡ, Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΡΠΌΠ°, email ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π°ΡΠ°Π»Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°ΠΉΠ» functions.php:
Function check_utf8($charset){ if(strtolower($charset) != "utf-8"){ return false; } return true; } function convert_to_utf8($in_charset, $str){ return iconv(strtolower($in_charset), "utf-8", $str); } function get_imap_title($str){ $mime = imap_mime_header_decode($str); $title = ""; foreach($mime as $key => $m){ if(!check_utf8($m->charset)){ $title .= convert_to_utf8($m->charset, $m->text); }else{ $title .= $m->text; } } return $title; }
ΠΠ°Π·Π²Π°Π½ΠΈΡ Π³ΠΎΠ²ΠΎΡΡΡΠΈΠ΅ ΠΈ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎΠΈΡ ΠΏΠΎΡΡΠ½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ imap_mime_header_decode() Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅Ρ Π΅Π΅, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ Π΄Π²Π° ΡΠ²ΠΎΠΉΡΡΠ²Π° charset (ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°) ΠΈ text (ΡΠ΅ΠΊΡΡ ΡΠ΅ΠΌΡ). ΠΠ°Π»ΡΡΠ΅ Π²ΡΡ ΠΏΡΠΎΡΡΠΎ: Π² ΡΠΈΠΊΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠΌ ΠΊ UTF-8 ΠΈ ΡΠΊΠ»Π΅ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅ΠΌΡ Π² Π΅Π΄ΠΈΠ½ΡΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π΅Π³ΠΎ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½ΡΠΌΡΡ Π² ΡΠ°ΠΉΠ» index.php ΠΈ Π²ΡΡΡΠ½Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ:
$mails_data[$i]["title"] = get_imap_title($msg_header->subject);
ΠΠ° ΡΡΠΎΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°ΠΏΠΊΠΈ ΠΏΠΈΡΡΠΌΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°.
Π Π°Π±ΠΎΡΠ°Π΅ΠΌ Ρ ΡΠ΅Π»ΠΎΠΌ ΠΏΠΈΡΡΠΌΠ°
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΈΡΡΠΌΠ° ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π»Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π²ΡΠΌΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ:
// Π’Π΅Π»ΠΎ ΠΏΠΈΡΡΠΌΠ° $msg_structure = imap_fetchstructure($connection, $i); $msg_body = imap_fetchbody($connection, $i, 1);
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $msg_structure Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΏΠΈΡΡΠΌΠ° β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ°ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½ΠΈΠΆΠ΅:
Π§ΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ:
- type β ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΡΠΈΠΏ ΡΠ΅Π»Π° ΠΏΠΈΡΡΠΌΠ°, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΊ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠΎΡΡΡ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΎΡ 0 Π΄ΠΎ 7 (ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ΅Π»Π΅ ΠΏΠΈΡΡΠΌΠ°);
- encoding β ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° ΡΡΠ°Π½ΡΡΠ΅ΡΠ° ΡΠ΅Π»Π°, ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΎΡ 0 Π΄ΠΎ 5 (0 - 7BIT, 1 - 8BIT, 2 β BINARY, 3 - BASE64, 4 - QUOTED-PRINTABLE, 5 - OTHER);
- parts β ΠΌΠ°ΡΡΠΈΠ² ΡΠ°ΡΡΠ΅ΠΉ ΠΏΠΈΡΡΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΠΎΠ²Π½Π΅ΠΌ Π²ΡΡΠ΅.
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ parts. ΠΠ΅ΡΠ²ΠΎΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π² Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΠΊΡΡΡ ΠΏΠΈΡΡΠΌΠ°, Π° Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ β Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ type ΠΈ Π² parameters ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° Π² ΡΠ²Π½ΠΎΠΌ ΠΈ Π² Π½Π΅ ΡΠ²Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠΈΡΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΌΠ΅ΡΠ΅ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π΄ΠΎ ΡΠ΅ΡΡΡΡΡ - ΠΏΡΡΠΈ ΡΡΠΎΠ²Π½Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎΠ±Ρ Π΅Ρ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΠ°Π·Π΄ΡΠ°ΠΊΠΎΠ½ΠΈΡΡ Π½Π°ΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ imap_fetchbody() ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ°ΡΡΡ ΠΏΠΈΡΡΠΌΠ°, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π² Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΅Π»Π° ΠΏΠΈΡΡΠΌΠ°:
$body = "";
ΠΠ΅ΡΠ½ΡΠΌΡΡ Π² ΡΠ°ΠΉΠ» functions.php ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
Function recursive_search($structure){ $encoding = ""; if($structure->subtype == "HTML" || $structure->type == 0){ if($structure->parameters->attribute == "charset"){ $charset = $structure->parameters->value; } return array("encoding" => $structure->encoding, "charset" => strtolower($charset), "subtype" => $structure->subtype); }else{ if(isset($structure->parts)){ return recursive_search($structure->parts); }else{ if($structure->parameters->attribute == "charset"){ $charset = $structure->parameters->value; } return array("encoding" => $structure->encoding, "charset" => strtolower($charset), "subtype" => $structure->subtype); } } }
Π€ΡΠ½ΠΊΡΠΈΡ recursive_search() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΈΡΡΠΌΠ°, Π³Π΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈ Π΄ΠΎΡΡΠ°Π΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: encoding, charset, subtype. Π’ΠΎΡΠΊΠΎΠΉ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° parts Ρ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΎΠΉ. ΠΠΎΠ»ΡΡΠ΅ ΠΏΠΎΡΡΠ½ΡΡΡ ΡΡΡ ΠΎΡΠΎΠ±ΠΎ Π½Π΅ΡΠ΅Π³ΠΎ, ΠΈΠ· ΠΊΠΎΠ΄Π° Ρ Π΄ΡΠΌΠ°Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅ΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΡΠ΅Π»Π° ΠΏΠΈΡΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ:
Function structure_encoding($encoding, $msg_body){ switch((int) $encoding){ case 4: $body = imap_qprint($msg_body); break; case 3: $body = imap_base64($msg_body); break; case 2: $body = imap_binary($msg_body); break; case 1: $body = imap_8bit($msg_body); break; case 0: $body = $msg_body; break; default: $body = ""; break; } return $body; }
$recursive_data = recursive_search($msg_structure); if($recursive_data["encoding"] == 0 || $recursive_data["encoding"] == 1){ $body = $msg_body; } if($recursive_data["encoding"] == 4){ $body = structure_encoding($recursive_data["encoding"], $msg_body); } if($recursive_data["encoding"] == 3){ $body = structure_encoding($recursive_data["encoding"], $msg_body); } if($recursive_data["encoding"] == 2){ $body = structure_encoding($recursive_data["encoding"], $msg_body); } if(!check_utf8($recursive_data["charset"])){ $body = convert_to_utf8($recursive_data["charset"], $msg_body); }
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΡΠΈΠΈ, ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ°Π½ΡΡΠ΅ΡΠ° ΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ structure_encoding() Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡΠ»ΠΎΠ²Π½ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ, ΡΠΎ, ΡΡΠΎ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² UTF-8 ΠΈ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΠΌ.
ΠΡΡΠ°Π»ΠΎΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ ΡΠ΅ΡΡΡ:
$mails_data[$i]["body"] = base64_encode($body);
Π ΡΠ΅Π»Π΅ ΠΏΠΈΡΡΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ, ΡΠ°ΠΊ ΠΈ HTML ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΡΡΠΈΠ»ΡΠΌΠΈ. ΠΠΎΠ΄ΠΈΡΡΠ΅ΠΌ Π² BASE64, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅ ΠΏΠΎΠ΅Ρ Π°Π»Π° ΡΠΆΠ΅ Π½Π°ΡΠ° Π²Π΅ΡΡΡΠΊΠ°.
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΠΎΡ, ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΊ ΠΊΠΎΠ½ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ:
// ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ if(isset($msg_structure->parts)){ for($j = 1, $f = 2; $j < count($msg_structure->parts); $j++, $f++){ if(in_array($msg_structure->parts[$j]->subtype, $mail_filetypes)){ $mails_data[$i]["attachs"][$j]["type"] = $msg_structure->parts[$j]->subtype; $mails_data[$i]["attachs"][$j]["size"] = $msg_structure->parts[$j]->bytes; $mails_data[$i]["attachs"][$j]["name"] = get_imap_title($msg_structure->parts[$j]->parameters->value); $mails_data[$i]["attachs"][$j]["file"] = structure_encoding($msg_structure->parts[$j]->encoding, imap_fetchbody($connection, $i, $f)); file_put_contents("tmp/".iconv("utf-8", "cp1251", $mails_data[$i]["attachs"][$j]["name"]), $mails_data[$i]["attachs"][$j]["file"]); } } }
ΠΡΡΠΎΠΊ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, Π° ΡΠ΅ΠΏΠ΅ΡΡ - ΠΏΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ. ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅Π»ΠΎΠΌ ΠΏΠΈΡΡΠΌΠ°, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ ΡΡΠ°ΠΏ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π½Π°Π»ΠΈΡΠΈΡ Π΅Π³ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° parts. ΠΠ΅ Π·Π°Π±ΡΠ²Π°Π΅ΠΌ ΠΎΡΡΠ΅ΠΈΠ²Π°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅, ΡΠ²Π΅ΡΡΡΡΡ ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½Π΅Ρ ΠΈΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ file_put_contents() ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π½Π°Ρ ΡΠ°ΠΉΠ» ΠΊ ΡΠ΅Π±Π΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π² ΠΏΠ°ΠΏΠΊΡ tmp.
Π₯ΠΎΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ!
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ Π΄Π°Π½Π½ΡΠΌΠΈ $mails_data, ΠΈ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΡ ΡΠΆΠ΅ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ Π½ΠΈΠΌ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π»Π΅ΠΆΠ°Π»ΠΎ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ Π³Π»ΡΠ½Π΅ΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π² ΠΈΡΠΎΠ³Π΅:
ΠΠΎΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡΡ ΠΌΠ°ΡΡΠΈΠ², ΡΠ²Ρ, ΠΏΡΠΈΡΠ»ΠΎΡΡ ΡΠΊΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ Π»ΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π½Π°ΡΠ΅ΠΉ HTML ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅:
Π―Π½Π΄Π΅ΠΊΡ ΠΠΎΡΡΠ° (ΠΡ ΠΎΠ΄ΡΡΠΈΠ΅) |
Π§ΠΈΡΠ»ΠΎ ΠΏΠΈΡΠ΅ΠΌ:
Π‘ΡΠΈΠ»ΠΈ Ρ Π½Π΅ Π±ΡΠ΄Ρ ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΠΈ Π½Π΅ ΠΈΠ³ΡΠ°ΡΡ, Π² ΠΈΡΠΎΠ³Π΅:
Π Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅ tmp Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°ΠΉΠ».
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΠΎΠ΄Π΅Π»Π°Π² Π²ΡΠ΅ ΡΡΠ°ΠΏΡ ΠΈΠ· ΡΡΠ°ΡΡΠΈ, Π²Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΠΈΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, Π½ΠΎ Π²ΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ β Π΅ΡΡΡ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ. ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½Π° Π²ΡΠ΅Ρ ΡΡΠ°ΠΏΠ°Ρ , ΠΏΠΈΡΡΠΌΠ° ΠΌΠΎΠ³ΡΡ ΠΈΠ΄ΡΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΡ, Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΠΎΠΈ Π½ΡΠ°Π½ΡΡ. Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΠ° ΠΈ ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΡΠ½ΠΊΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ. ΠΠ° ΡΡΠΎΠΌ Ρ ΠΌΠ΅Π½Ρ Π²ΡΡ, Π½Π°Π΄Π΅ΡΡΡ Π²Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π―Π½Π΄Π΅ΠΊΡ ΠΏΠΎΡΡΡ.
ΠΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΈΡΡΠΌΠΎ Ρ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ(
Π΅ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ - Π»ΡΠ±ΡΠΌ - ΡΠΎ ΠΏΡΠΎΠΏΠ°Π΄Π°Π΅Ρ ΡΠ΅ΠΊΡΡ ΠΏΠΈΡΡΠΌΠ°
ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°
ΠΠΎΠ½ΡΡΠ½ΠΎ... Π΅ΡΠ»ΠΈ Ρ ΡΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΡΠ½Π΄Π΅ΠΊΡ ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΡΡ ΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ...
ΡΠΈΠΏΠ° ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΡΡ
Π½ΠΎ Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΊΡΠΎΠΌΠ΅ Π²ΠΎΡΠ΄Π° ΡΡΠΎΡ ΡΠΊΡΠΈΠΏΡ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ... ΡΠ°ΠΌ Π΅ΡΡΡ ΡΡΡΠΎΡΠΊΠ° MSWORD ΡΡΠ΄ΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π·Π°ΠΏΡΡΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΠΈ ΠΏΠ΄Ρ ΠΈ ΠΆΠΏΠ³ ΠΈ ΠΏΠ½Π³ - ΡΠΈΡΠ°Π΅Ρ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΡΠ΄.... ΠΊΠ°ΠΊ ΡΠΎ ΡΠ°ΠΊ
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ imap ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΌΠΎΠ½Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΎΠΉ ΠΈ ΠΎΡΠΏΠΈΡΠΊΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΡΠ»ΠΊΠΈ. ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ Π² ΡΠ°ΡΡΡΠ»ΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΉΡΠΈ Π½Π° Π½Π΅ΠΊΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΠ²ΠΎΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π²ΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΈΡΡΠΌΠ°. ΠΡΠΎΡΠΎΠΉ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠΊΡΠΈΠΏΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π»ΡΡ cron daemon-om. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΏΠΎΡΠΎΠ±.
ΠΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠΎΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ cron, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΈΠΌ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΡΡΠ΄Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Ρ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠΈΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ.
ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ΅ΠΌΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° Π½Π΅ΠΌ ΠΏΠΈΡΠ΅ΠΌ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΏΠΈΡΠ΅ΠΌ Π½Π΅Ρ, ΡΠ°Π±ΠΎΡΠ° ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠΈΡΡΠΌΠ° Π΅ΡΡΡ, ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π±ΠΎΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠ°. ΠΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Ρ from ΠΈ subject. ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ subject ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΠΎΡΠΏΠΈΡΠΊΠ°), ΡΠΎ Π·Π°ΠΏΠΈΡΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ from Π»ΠΈΠ±ΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ (ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΉ), Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ. Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π° Π°Π΄ΡΠ΅Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΏΠΎΠ»Π΅ from ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΠ·Π²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ ΡΠΊΡΠΈΠΏΡΠ°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ subject Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠ΅ΠΌ, ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈ ΠΏΠΈΡΡΠΌΠΎ ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΡ. ΠΠ°ΠΊΠΎΠ½ΡΠΈΠ² ΡΠ°Π·Π±ΠΎΡ Π²ΡΠ΅Ρ ΠΏΠΈΡΠ΅ΠΌ, ΠΎΠ½ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΡΠΈΠΊ.
ΠΠ»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΡΠΈΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ imap_open . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ PHP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌΠΈ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΠΈΠΊΠΎΠΌ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ pop3 Π½Π° 110 ΠΏΠΎΡΡΡ (ΡΡΠ°Π½Π΄Π°ΡΡ). ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $my_box.
$my_box = imap_open("{you.pop.host/pop3:110}", "login", "password");
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅Ρ imap ΡΡΠ½ΠΊΡΠΈΡΡ . ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΈΠΊ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΏΠΈΡΠ΅ΠΌ. ΠΡΠΎΠ²Π΅ΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ imap_num_msg.
$n = imap_num_msg($my_box);
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $n Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΈΡΠ΅ΠΌ Π² ΡΡΠΈΠΊΠ΅. Π§ΠΈΡΠ»ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ, ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΠΎ Π΅ΠΌΡ (Π΅ΡΠ»ΠΈ ΡΡΠΈΠΊ ΠΏΡΡΡ). ΠΡΠ»ΠΈ ΠΏΠΈΡΡΠΌΠ° Π΅ΡΡΡ, ΡΠΎ Π² ΡΠΈΠΊΠ»Π΅ while Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ°Π·Π±ΠΎΡ ΠΏΠΈΡΠ΅ΠΌ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΡΡΠΌΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ Π² ΡΡΠΈΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π½ΠΎΠΌΠ΅Ρ 0, ΠΊΠ°ΠΊ, ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ»Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΈΡΡΠΌΠ°, ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $m Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, Π° ΠΏΠΎΡΠΎΠΌ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΈΠΊΠ»Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΠΌ Π΅Π΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ $m++.
ΠΠ»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ Π½Π°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ: imap_header ΠΈ imap_fetch_overview . ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΈΡ , ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠΈΠΊΠ°, Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΈΡΡΠΌΠ°. Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, Π²Π½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ°Π²Π΅Π½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $m.
imap_header Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΏΠΈΡΡΠΌΠ°. Π‘ΡΠ΅Π΄ΠΈ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅Π³ΠΎ, ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ°ΡΡΠΈΠ² from, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠΎ personal, adl, mailbox ΠΈ host. ΠΠ°Ρ ΠΈΠ· Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ mailbox ΠΈ host. ΠΠΎΠ΄ΡΡΠ°Π²Π»ΡΡ ΠΈΡ , ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π°Π΄ΡΠ΅Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΠΈΡΡΠΌΠΎ.
$h = imap_header($my_box, $m); $h = $h->from; foreach ($h as $k => $v) { $mailbox = $v->mailbox; $host = $v->host; $personal = $v->personal; $email = $mailbox . "@" . $host;
imap_fetch_overview - ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π°ΠΌ ΡΠ·Π½Π°ΡΡ ΡΠ΅ΠΌΡ ΠΏΠΈΡΡΠΌΠ°. ΠΠ»Ρ ΡΡΠΈΡ ΠΆΠ΅ ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ imap_header Π½ΠΎ ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½ ΡΡΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠ· ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅ subject
$s = imap_fetch_overview($my_box, $m); foreach ($s as $k => $v) $subj = $v->subject;
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π½Π°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΠ°ΡΠΈΡΡ email ΠΈΠ· Π±Π°Π·Ρ, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ Π΅Π³ΠΎ ΡΠ°ΠΌ, ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ Ρ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ ΠΊΠ°ΠΊ, Π»ΠΈΠ±ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅, ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΡΠ°ΡΡΡ 0, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΎΠ½ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° 1.
If ($subj == "subscribe") { mysql_query("update subscribe set stat=1 where email=$my_email"); $del = imap_delete($my_box, $m); mail($email, $add_sbj, $add_text, $headers); } else if ($subj == "unsubscribe") { mysql_query("delete from subscribe where email = $my_email"); $del = imap_delete($my_box, $m); mail($email, $del_sbj, $del_text, $headers); } else { $del = imap_delete($my_box, $m); mail($email, $err_sbj, $err_text, $headers); } ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΎΡΠΈΡΠ°Π΅Ρ ΡΡΠΈΠΊ. $clear = imap_expunge($my_box);
ΠΠ°Π½Π½Π°Ρ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π»ΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π° PHP ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ΡΡ ΡΠ°ΠΉΡΡ, Π½ΠΎ ΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π²ΠΈΠ΄Π½Ρ.
ΠΠΈΡΡΠΈΠ½Π³ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ:
Include "config.php"; // ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΠΠ $my_box = imap_open("{you.pop.host/pop3:110}", "login", "password"); $n = imap_num_msg($my_box); $m = 0; $add_text = " Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ "; $add_sbj = "you added!"; $del_text = " ΠΡ Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΡΡΡΠ»ΠΊΠΈ. "; $del_sbj = "delete from list"; $err_text = " ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅ Π½ΠΎ ΡΡΠΎΡ ΠΏΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΡΠ»ΠΊΠΈ"; $err_sbj = "error"; $headers = "from: subscribe robot x-mailer: php4 content-type: text/plain; charset=windows-1251 "; if($n != 0) { while($m++ < $n) { $h = imap_header($my_box, $m); $s = imap_fetch_overview($my_box, $m); $h = $h->from; foreach ($h as $k =>$v) { $mailbox = $v->mailbox; $host = $v->host; $personal = $v->personal; $email = $mailbox . "@" . $host; $my_email = mysql_escape_string($email); } foreach ($s as $k =>$v) $subj = $v->subject; if ($subj == "subscribe") { mysql_query("update table set stat=1 where email=$my_email"); //print mysql_error(); $del = imap_delete($my_box, $m); mail($email, $add_sbj, $add_text, $headers); } else if ($subj == "unsubscribe") { mysql_query("delete from table where email = $my_email"); $del = imap_delete($my_box, $m); mail($email, $del_sbj, $del_text, $headers); } else { $del = imap_delete($open_box, $m); mail($email, $err_sbj, $err_text, $headers); } } $clear = imap_expunge($my_box); }
Π Π»ΠΈΡΡΠΈΠ½Π³e ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· win Π² koi, ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ° ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ Ρ.Π΄. ΠΡΠΎ ΡΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ·Π»ΠΈΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ° Π΄Π½ΡΡ
ΠΌΠ½Π΅ ΠΏΡΠΈΡΠ»ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° PHP, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Ρ
ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΏΠΎΡΡΠΎΠΉ. ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ Π³ΡΠ³Π»ΠΈΠ² Ρ ΡΠ²ΠΈΠ΄Π΅Π» ΡΡΠΎ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΌΠ½Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² POP3
ΠΈ IMAP
.
ΠΠΎ Π²ΡΠ±ΠΎΡ Π±ΡΠ» ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ Π±ΡΠ΄Ρ IMAP ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π΅ΠΉ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° POP3.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠ½Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π±ΡΡΡΡΠ΅Π½ΡΠΊΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°ΠΌ IMAP , ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΈΡΡΠΌΠ° ΠΈΠ· ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Yandex/Google.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΡΠ±ΡΠ°Π» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ PhpImap
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡΡΠΎ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π²ΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ Π²ΡΠ±ΠΎΡΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π±ΡΠ΄Π΅ΠΌ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ PHP Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠΌ IMAP, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ php_imap.dll/imap.so Π² ΡΠ°ΠΉΠ»Π΅ php.ini.
ΠΠ»Ρ Π½Π°ΡΠ°Π»ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡ ΠΊ Yandex ΠΏΠΎΡΡΠ΅ ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ ΠΌΠ΅Π½Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ Ρ Π½Π΅ΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
//ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ include("/phpImap/Mailbox.php"); include("/phpImap/IncomingMail.php"); //ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠΎΠ·Π΄Π°ΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ. define("MAIL_IMAP_SERVER", "imap.yandex.ru"); define("MAIL_IMAP_SERVER_PORT", 993); define("MAIL_IMAP_LOGIN", " "); define("MAIL_IMAP_PASS", "example_pass"); define("MAIL_IMAP_PATH", "{".MAIL_IMAP_SERVER.":".MAIL_IMAP_SERVER_PORT."/imap/ssl}INBOX"); $mailbox = new PhpImap\Mailbox(MAIL_IMAP_PATH, MAIL_IMAP_LOGIN, MAIL_IMAP_PASS, __DIR__); try { $mailbox->getImapStream(); } catch (Exception $e) { die($e->getMessage()); }
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° Mailbox ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ:
- MAIL_IMAP_PATH - CΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° (MAIL_IMAP_SERVER), ΠΏΠΎΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (MAIL_IMAP_SERVER_PORT), ΡΠΈΠΏ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ (imap) ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ (ssl). ΠΠΎΡΠ»Π΅ ΡΠΈΠ³ΡΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΎΠΊ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΠΏΠΊΡ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ (INBOX).
- MAIL_IMAP_LOGIN - ΠΠΎΡΡΠΎΠ²ΡΠΉ ΡΡΠΈΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡΡ.
- MAIL_IMAP_PASS - ΠΠ°ΡΠΎΠ»Ρ (ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°).
- __DIR__ - ΠΡΠΎ ΠΏΡΡΡ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠΎΡΡΠΎΠ²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠΎΠ·Π΄Π°Π»ΠΎΡΡ Π»ΠΈ Π½Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ getImapStream() Π΅ΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ Π½Π΅ ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎ ΡΡΠ΅ΡΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎ ΡΡΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Yandex ΠΏΠΎΡΡΡ Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ IMAP.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠΎΡΡΠ΅ Gmail.
Define("MAIL_IMAP_SERVER", "imap.gmail.com"); define("MAIL_IMAP_SERVER_PORT", 993); define("MAIL_IMAP_LOGIN", " "); define("MAIL_IMAP_PASS", "example_pass"); define("MAIL_IMAP_PATH", "{".MAIL_IMAP_SERVER.":".MAIL_IMAP_SERVER_PORT."/imap/ssl}INBOX");
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΡΠΊΠΎΡΠ΅ΠΉ Π²ΡΠ΅Π³ΠΎ Ρ ΠΠ°Ρ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ.
ΠΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΡΠ΅ΠΌ ΡΡΠΎ Π² Gmail ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° IMAP ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
. ΠΠΊΠ»ΡΡΠΈΡΡ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΠ΅ΡΠ΅ΡΡΠ»ΠΊΠ° ΠΈ POP/IMAP Π² ΠΎΠΏΡΠΈΠΈ ΠΠΎΡΡΡΠΏ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ IMAP β ΠΠΊΠ»ΡΡΠΈΡΡ IMAP.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ IMAP Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ . ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½ΡΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΈΠ»Ρ. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ . ΠΠΎΠ³Π΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΏΠΈΡΠ°ΡΡ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ MAIL_IMAP_PASS Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ.
Π£ΡΡΠΈΡΠ΅ ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠΎΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΡΠΎ ΡΠ²ΡΠ·Π½ΠΎ Ρ ΡΠ΅ΠΌ ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΏΠ°ΡΠΎΠ»Ρ Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠ΅ΡΠ²ΠΈΡΡ Gmail ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ 5-60 ΠΌΠΈΠ½ΡΡ.
ΠΡΠ±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ searchMailBox(string $criteria) ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π΅ΡΡΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄Π° imap_search . Π’ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ $criteria ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΈΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ Π½Π°ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΌ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ Π½Π°ΠΌ ΠΏΡΠΈΠ³ΠΎΠ΄ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
$mailsIds = $mailbox->searchMailBox("ALL");
ΠΠ°ΠΊ ΠΡ ΡΠΆΠ΅ Π΄ΠΎΠ³Π°Π΄Π°Π»ΠΈΡΡ ΡΡΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡΠΌΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡΠΌΠΈ ΠΏΠΎΠΈΡΠΊΠ°:
//ΠΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° 3 Π΄Π½Ρ. $mailsIds = $mailbox->searchMailBox("SINCE "".date("d-M-Y",strtotime("-3 day"))."""); //ΠΠ΅ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π·Π° 3 Π΄Π½Ρ. $mailsIds = $mailbox->searchMailBox("UNSEEN SINCE "".date("d-M-Y",strtotime("-3 day"))."""); //ΠΠΎΠΈΡΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ TEXT. $mailsIds = $mailbox->searchMailBox("TEXT "ΠΠΎΠ²ΠΎΡΡΠ½Π°Ρ ΡΠ°ΡΡΡΠ»ΠΊΠ°""); //ΠΠΎΠΈΡΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ΠΌ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ BODY. $mailsIds = $mailbox->searchMailBox("BODY "ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅""); //ΠΠΎΠΈΡΠΊ ΠΏΠΎ Π΅ΠΌΠ΅ΠΉΠ»Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ. $mailsIds = $mailbox->searchMailBox("FROM " ""); //ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ SUBJECT $mailsIds = $mailbox->searchMailBox("SUBJECT "ΠΡΠΏΡΡΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°"");
ΠΠ°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅Π² ΠΏΠΎΠΈΡΠΊΠ°.
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ:
//ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π°. $id = end($mailsIds); //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° IncomingMail ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ. $mail = $mailbox->getMail($id); //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΡΡ. $mail->getAttachments(); //ΠΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. echo $mail->textHtml;
ΠΠΎΡ ΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠΈΡΡΠΌΠ° ΠΈ Π΅Π³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π±Π΅Π· Π²ΡΡΠΊΠΈΡ Π·Π°ΠΌΠΎΡΠΎΡΠ΅ΠΊ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ.
Π Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ ΡΡΠ΄ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΡΠΎΠ²ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ:
Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠ΄.
$mailbox->saveMail($id,$id.".eml");
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎ Π΅Π³ΠΎ id.
$mailbox->markMailAsUnread($id);
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎ Π΅Π³ΠΎ id.
$mailbox->markMailAsRead($id);
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠ΅ΡΠΊΡ ΠΏΠΎ Π΅Π³ΠΎ id.
$mailbox->markMailAsImportant($id);
Π£Π΄Π°Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ id.