在该项目中,我现在的工作时,我想补充,我可以从“封闭”到“重开”,当用户发送一封电子邮件,支持桌面更改车票的状态的功能。 我也想他们的电子邮件回复保存到数据库中。
我遇到的问题是,我不能让PHP的IMAP功能对我目前的Apache配置工作。 从看这里不少帖子在计算器和其他地方,看来这个问题是OpenSSL是不是在标准配置中启用。 因此,例如,当我运行这段代码:
<h1>IMAP testing!</h1>
<?php
$connect = "{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX";
$user = "my email address @gmail.com";
$pass = "my password";
$mailbox = imap_open($connect, $user, $pass);
?>
我得到的错误:
Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification.
有什么我可以做的,总之重新编译PHP,我的本地计算机上模拟IMAP功能,以便能够继续发展与电子邮件(邮件管道)工作的功能?
在我的当前配置的一些注意事项,以防万一它可以帮助:
- OS X 10.7.4
- PHP v.5.3.1
UPDATE -
我几乎没有(感谢dAm2K)!
我安装的Stunnel(使用MAC端口),得到的一切终于配置和运行的命令:
sudo stunnel /opt/local/etc/stunnel/stunnel.conf -c -d 127.0.0.1:443 -r imap.gmail.com:993
(不管出于什么原因,我不得不路径添加到.conf文件)
现在我的代码如下所示:
<?php
$connect = "{localhost:443}INBOX";
$user = "my email address @gmail.com";
$pass = "my password";
$mailbox = imap_open($connect, $user, $pass);
?>
现在,当我加载网页,它只是挂起30秒左右,并给出了警告:
Notice: Unknown: Connection failed to localhost,443: Operation timed out (errflg=2) in Unknown on line 0
有趣的是,如果我改变$连接:
$connect = "{localhost:443/ssl}INBOX";
要么
$connect = "{localhost:443/novalidate-cert}INBOX";
我得到了原来的错误,这是:
Notice: Unknown: Can't open mailbox {localhost:443/novalidate-cert}INBOX: invalid remote specification (errflg=2) in Unknown on line 0
有任何想法吗? 只是一种猜测,但可以把它也许是一些跟安全通道的设置,就像有一个自签名的证书或某事与stunnel.conf文件我失踪?
非常感谢。
蒂姆