我正在设置一个"类似代理"的电子邮件,通知电子邮件将发送给他订阅的用户,但他可以回复应该包含他的回复的电子邮件notification@site.com
。在服务器端,我希望能够阅读他的电子邮件并将他的回复添加到数据库中——电子邮件存储在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
你要求在这里进行基本的调试,所以我试着,也许这会影响
您是否尝试指定邮箱?顺便说一句,你实际上应该使用正确的语法,它是host:port/protocol
,而imap
是默认协议,你可以省略它:
imap_open("{localhost:143}INBOX", "notification", "password");
^^^^^^^^^^^^^ ^^^^^
请与imap_open
Docs上的许多示例和注释进行比较。
同样,由于这是调试,请尝试:
var_dump(imap_errors(), imap_alerts());
调试愉快。
我在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/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()"函数终于工作了。