使用IMAP在服务器上阅读邮件?

时间:2012-08-06 14:50:53

标签: php email imap

我正在设置一个“代理类似”的电子邮件,其中通知电子邮件会发送给他已订阅的用户,但他可以回复应包含其回复的电子邮件notification@site.com。在服务器端,我希望能够阅读他的电子邮件并将他的回复添加到数据库中 - 电子邮件存储在notification用户收件箱中,这很好,现在可以用PHP读取它。 / p>

所以,我一直在寻找解决方案,许多解决方案都是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 个答案:

答案 0 :(得分:3)

  

你在这里要求进行基本调试,所以我试试,也许是这个机器

您是否尝试过指定邮箱?顺便说一句,你应该使用正确的语法,它是host:port/protocolimap是默认协议,你可以把它留下来:

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

请与imap_openDocs上的许多示例和说明进行比较。

此外,这是调试,请尝试:

var_dump(imap_errors(), imap_alerts());

快乐的调试。

答案 1 :(得分:1)

我在Ubuntu 11.04系统上遇到了完全相同的问题,我通过以下命令在我的主目录中创建“Maildir”文件夹(如here所述)解决了这个问题:
< / p>

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

首先,您应该检查日志文件“/ var / log / syslog”中的错误(例如通过执行命令sudo tail /var/log/syslog)。 在我的日志中,我注意到以下错误:imapd: chdir Maildir: No such file or directory 所以我检查了配置文件“/ etc / courier / imapd”,我看到MAILDIRPATH选项设置为“Maildir”:

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

然后我创建了如上所述的“Maildir”文件夹,“imap_open()”函数终于有效了。