Чтение почты на сервере с помощью IMAP?


Я настраиваю электронное письмо, похожее на прокси-сервер, в котором пользователю отправляются электронные письма с уведомлениями, на которые он подписался, но он может ответить на электронное письмо [email protected], которое должно содержать его ответ. На стороне сервера я хочу иметь возможность прочитать его электронную почту и добавить его ответ в базу данных - электронное письмо хранится в папке "Входящие" пользователя notification, что здорово, теперь его можно прочитать с помощью PHP.

Итак, я искал решения для этого, многие решения были IMAP, поэтому я решил попробовать но я, кажется, не могу понять, как я подключаюсь к своему серверу, чтобы открыть почтовый ящик. Я настроился на разные порты, но ни один из них не может подключиться.

imap_open("{localhost/imap:143}", "notification", "password");

Я получаю такие ошибки:

Warning: imap_open(): Couldn't open stream {localhost/imap:143} in /var/www/site.com/www/mail.php on line 8
bool(false)

Notice: Unknown: Connection failed to localhost,143: Connection refused (errflg=1) in Unknown on line 0

Notice: Unknown: Connection failed to localhost,143: Connection refused (errflg=1) in Unknown on line 0

Notice: Unknown: Connection failed to localhost,143: Connection refused (errflg=1) in Unknown on line 0

Notice: Unknown: Connection failed to localhost,143: Connection refused (errflg=2) in Unknown on line 0

Я не понимаю, очевидно, что это моя первая попытка, но что я явно делаю не так с подключением?

РЕДАКТИРОВАТЬ: Я начал courier-imap теперь я понимаю это:

Notice: Unknown: [CLOSED] IMAP connection broken (server response) (errflg=1) in Unknown on line 0

Notice: Unknown: [ALERT] Fatal error: No such file or directory: No such file or directory in Unknown on line 0
Author: MacMac, 2012-08-06

2 answers

У меня была точно такая же проблема в моей системе Ubuntu 11.04, и я решил ее, создав папки "Maildir" в моем домашнем каталоге (как описано здесь) с помощью следующих команд:

cd ~
maildirmake Maildir
maildirmake Maildir/.Drafts
maildirmake Maildir/.Sent
maildirmake Maildir/.Trash
maildirmake Maildir/.Templates
chmod -R 700 Maildir

Прежде всего, вы должны проверить наличие ошибок в файле журнала "/var/log/системный журнал" (например, выполнив команду sudo tail /var/log/syslog).
В своем журнале я заметил следующую ошибку: imapd: chdir Maildir: No such file or directory.
Поэтому я проверил файл конфигурации "/etc/courier/imapd" и увидел, что путь к почте опция была установлена на "Maildir":

#
# MAILDIRPATH - directory name of the maildir directory.
#
MAILDIRPATH=Maildir

Затем я создал папки "Maildir", как описано выше, и функция "imap_open()" наконец сработала.

 1
Author: , 2012-08-14 21:01:17

Вы просите здесь базовую отладку, поэтому я пытаюсь, может быть, это сработает

Вы пытались указать почтовый ящик? И кстати, вы действительно должны использовать правильный синтаксис, это host:port/protocol, тогда как imap является протоколом по умолчанию, и вы можете его опустить:

imap_open("{localhost:143}INBOX", "notification", "password");
            ^^^^^^^^^^^^^ ^^^^^

Пожалуйста, сравните со многими примерами и примечаниями по imap_open Документы.

Также, поскольку это отладка, попробуйте:

var_dump(imap_errors(), imap_alerts());

Счастливой отладки.

 3
Author: hakre, 2012-08-09 21:38:54