ΠΠΊΡΡΠΆΠ°ΡΡΠ°Ρ ΡΡΠ΅Π΄Π° (ΠΏΡΠΎΡΡΠ±Π° Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ):
ΠΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Π²Π΅ΡΡΠΈΠΈ PHP IMAP 3.0.14, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ getMail.
ΠΡΠΎΠ±ΠΎΠ²Π°Π» Π½Π° 2-Ρ
Π²Π΅ΡΡΠΈΡΡ
php,
Π½Π° php 7.1.12 Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: "zend_mm_heap ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½"
Π½Π° php 7.2.1 Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: Β«ΠΡΠΈΠ±ΠΊΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: 11Β»
Π― Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΡΠΎ Π² CLI Π½Π° MacOS. ΠΠ΅ΡΡΠΈΠΈ php ΠΎΡ MAMP PRO.
PHP IMAP Π²Π΅ΡΡΠΈΠΈ 3.0.13 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ
Π¨Π°Π³ΠΈ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄:
$mailbox = new \PhpImap\Mailbox(
$config['server'],
$config['username'],
$config['password']
);
$mailsIds = $mailbox->searchMailbox('ALL');
$mail = $mailbox->getMail($mailIds[0]);
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ
Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ / ΠΡΡ
ΠΎΠ΄Ρ
ΠΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ Π΅Π³ΠΎ, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ php 7.1 Β«zend_mm_heap ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Β»
Π― ΡΠΎΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΡΠΎ Π½Π° php 7.2, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ Β«ΠΡΠΈΠ±ΠΊΠ° ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: 11Β».
Π‘ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΈΡΡΠΌΠ°? GMail / G Suite, Microsoft Exchange, Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ?
ΠΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅? Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π²Π°ΡΠ΅ΠΌ php.ini
: opcache.enable_cli=0
(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ opcache)
Π‘ΠΌ. Https://stackoverflow.com/questions/2247977/what-does-zend-mm-heap-corrupted-mean.
ΠΠ° ΡΠΆΠ΅ ΠΈΠ³ΡΠ°Π» Ρ ΡΡΠΈΠΌ. Π½ΠΎ Π±Π΅Π·ΡΡΠΏΠ΅ΡΠ½ΠΎ, Ρ ΠΌΠ΅Π½Ρ Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΠΎΡΡΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠΎΡΡΠΎΠ²ΡΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° dovecot imap. (ΡΠ΅ΡΠ²Π΅Ρ directadmin)
ΠΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Dovecot 2.2.27, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π½Π΅Ρ ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ²ΠΎΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Dovecot (ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅)? doveconf -an
ΠΠ°ΡΠ΅ΠΌ Ρ ΠΌΠΎΠ³Ρ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΌΠΎΠΈΠΌΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π² ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Gmail. Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ°.
Π― ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. Mac ΠΈ Linux.
Π― Π·Π°ΠΏΡΡΡΠΈΠ» ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° cakephp. ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΡΡΠΈΠΌ. Π― ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΠΌΠΎΠ³Ρ Π»ΠΈ Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ.
CakePHP ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ: https://book.cakephp.org/3.0/en/core-libraries/caching.html
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ?
Cakephp ΠΊΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΠ΅. ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠΆΠ΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠΏΡΠΎΡΠΈΡΠ΅.
Π― ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ cakephp 3.7. ΠΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ:
composer create-project --prefer-dist cakephp/app
ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅)
composer require php-imap/php-imap
Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»: src / Command / testCommand.php (ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ°ΠΏΠΊΡ Command)
<?php
namespace App\Command;
use Cake\Console\Arguments;
use Cake\Console\Command;
use Cake\Console\ConsoleIo;
class TestCommand extends Command {
public function execute(Arguments $args, ConsoleIo $io)
{
$mailbox = new \PhpImap\Mailbox(
'{imap.gmail.com:993/imap/ssl}INBOX', // IMAP server and mailbox folder
'', // Username for the before configured mailbox
'' // Password for the before configured username
);
$mailsIds = $mailbox->searchMailbox('ALL');
foreach ($mailsIds as $mailId) {
$mail = $mailbox->getMail($mailId);
print_r($mail);
exit;
}
}
}
(Π²Π²Π΅Π΄ΠΈΡΠ΅ Π»ΠΎΠ³ΠΈΠ½ / ΠΏΠ°ΡΠΎΠ»Ρ)
Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ²: bin/cake test
ΠΠΎΡ
ΠΎΠΆΠ΅, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ iconv. ΠΠ½ Π²ΡΠ»Π΅ΡΠ°Π΅Ρ Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
https://github.com/barbushin/php-imap/blob/c0750ec4ce4e00be2e884005b2fbd94ccd64a34d/src/PhpImap/Mailbox.php#L1013
Π‘ ΠΊΠ°ΠΊΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΠΉ?
ΠΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π·Π½Π°ΠΊ @
ΠΏΠ΅ΡΠ΅Π΄ iconv(
, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
.
@blieb Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ΅ΠΉ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ Π΅ΡΠ΅ ΡΠ°Π·?
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²Π΅ΡΠΊΠΈ develop
:
composer require php-imap/php-imap:dev-develop
ΠΠ°, ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ dev ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ
ΠΠ΄ΠΎΡΠΎΠ²ΠΎ! ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠΏΡΡΠΊ v3.0.16 . :)