Пользовательская команда IMAP в php

#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. не могли бы вы, пожалуйста, опубликовать свой ответ на английском?