#php #imap
#php #imap
Вопрос:
Какова альтернатива функции java imap doCommand
в php?
Я хочу запустить какую-нибудь пользовательскую команду расширения imap, но я не нахожу никакой функции для этого здесь: http://php.net/manual/en/book.imap.php
Ответ №1:
Я переключился на zend imap. он поддерживает пользовательскую команду и выборку.
которая решила мою проблему.
<?php
require_once 'Zend/Mail/Storage/Imap.php';
require_once "Zend/Mail/Protocol/Imap.php";
require_once "Zend/Registry.php";
$protocol = new Zend_Mail_Protocol_Imap('imap.gmail.com', 993, true);
$protocol->login($user, $pass);
$protocol->select('INBOX');
$storage = new Zend_Mail_Storage_Imap($protocol);
foreach ($storage as $messageId => $message) {
$id = $protocol->fetch('Custom Attribute', $storage->getUniqueId($messageId));
echo "Mail from '{$message->from}': {$message->subject} : Custom Attribute $id n";
}
?>
Комментарии:
1. Третий параметр true не работает (больше?). Я могу успешно подключиться, используя это:
$protocol = new ZendMailProtocolImap('imap.gmail.com', 993, 'SSL');
Ответ №2:
Zend поддерживает пользовательские рекомендации, но, к сожалению, не поддерживает некоторые базовые, такие как получение частей сообщения, которые выполняет библиотека imap PHP по умолчанию … 🙁
Ответ №3:
если собираетесь искать через imap кириллические слова — у меня получилось так:
если вы собираетесь выполнять поиск с использованием неанглоязычных символов IMAP — сделайте вот так:
$protocol->search(array("charset utf-8 X-GM-RAW", "Денис|test"));//это zend
т.е. в итоге запрос серверу будет такой:
результатом этого запроса к серверу будет:
. search charset utf-8 text Живалов|test
или так — используем imap расширение gmail мощный поиск:
или так — используйте расширение gmail imap для мощного поиска:
. search charset utf-8 X-GM-RAW 'Живалов'|'test'
— вот так работает это апостроф на букве (Ё/тильде ~) именно в такой последовательности ни двойные кавычки, ни одинарные не работают, нуу вроде как и без всего работает:
это работает, ‘ этот апостроф к букве (e / ~ тильда) в таком порядке либо двойные, либо одинарные кавычки не работают, вроде как без всей работы:
. search charset utf-8 X-GM-RAW Живалов|test
Я не знаю, как опубликовать здесь какую-нибудь вики-страницу, так что вы можете почитать что-нибудь здесь
Комментарии:
1. почему вы инициализируете Storage_Imap с помощью Protocol_Imap
$storage = new Zend_Mail_Storage_Imap($protocol);
не могли бы вы объяснить, пожалуйста2. не могли бы вы, пожалуйста, опубликовать свой ответ на английском?