Чтение почты на сервере с помощью 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
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()" наконец сработала.
Вы просите здесь базовую отладку, поэтому я пытаюсь, может быть, это сработает
Вы пытались указать почтовый ящик? И кстати, вы действительно должны использовать правильный синтаксис, это host:port/protocol
, тогда как imap
является протоколом по умолчанию, и вы можете его опустить:
imap_open("{localhost:143}INBOX", "notification", "password");
^^^^^^^^^^^^^ ^^^^^
Пожалуйста, сравните со многими примерами и примечаниями по imap_open
Документы.
Также, поскольку это отладка, попробуйте:
var_dump(imap_errors(), imap_alerts());
Счастливой отладки.