Пользовательская команда IMAP в php
Какова альтернатива функции java imap doCommand
в php?
Я хочу запустить какую-нибудь пользовательскую команду расширения imap, но я не нахожу здесь никакой функции для этого: http://php.net/manual/en/book.imap.php
3 answers
Я переключился на 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";
}
?>
Zend поддерживает пользовательские настройки, но, к сожалению, не поддерживает некоторые базовые, такие как получение частей сообщений, которые делает библиотека imap PHP по умолчанию...:-(
Если собираетесь искать через imap кириллические слова - у меня получилось так:
Если вы собираетесь выполнять поиск с использованием неанглийских символов IMAP - сделайте так:
$protocol->search(array("charset utf-8 X-GM-RAW", "Денис|test"));//это zend
Т.е. в итоге запрос серверу будет такой:
Результатом этого запроса к серверу будет:
. search charset utf-8 text Живалов|test
Или так - используем imap расширение gmail мощный поиск:
Или так - используйте расширение imap gmail для мощного поиска:
. search charset utf-8 X-GM-RAW 'Живалов'|'test'
- вот так работает это апостроф на букве (Ё/тильде ~) именно в такой последовательности ни двойные кавычки, ни одинарные не работают, нуу вроде как и без всего работает:
Это работает, "этот апостроф к букве (e/ ~ тильда) в таком порядке либо двойные кавычки, либо одинарные кавычки не работают, вроде как без всей работы:
. search charset utf-8 X-GM-RAW Живалов|test
Я не знаю, как разместить здесь какую-нибудь вики-страницу, так что вы можете написать что-нибудь здесь