我正在根据上一个问题测试一个想法,但我遇到了一个非常有趣的问题......

我的主目录位于服务器的一个路径上(所有主目录都驻留在其中),由于我只能猜测的原因,该目录的 PHP 配置没有打开 IMAP。

但是,我的项目目录(存在于实时站点的测试镜像上)确实启用了 IMAP。

所以我正在测试的是使用 .forward 文件在发送电子邮件时触发 php 脚本。我可以轻松使用的唯一电子邮件是我的用户电子邮件,这意味着我必须在我的个人主目录中设置 .forward。

.forward 有效,但电子邮件因部分错误而退回。据我所知,脚本失败是因为“意外的函数 open_imap()”,这是我尝试在个人文件夹中执行整个操作时得到的结果。

所以问题似乎是我可以直接从浏览器运行脚本,因为该脚本位于具有 IMAP 的目录中,但是当我从我的主目录(同样没有 IMAP)将电子邮件指向它时),默认是触发脚本的文件路径的PHP设置,而不是脚本本身路​​径的配置。

所以:

  1. 我是不是完全错了,只是调试得不够?
  2. 如果我是对的,有没有办法让脚本遵守它自己的路径的 php 配置?
  3. 如果没有,除了设置所有新的电子邮件帐户或请求服务器管理员打开 IMAP 之外,还有其他方法可以实现此目的吗?
有帮助吗?

解决方案

我不确定这是否是原因,但您可以为 Web 服务器和命令行界面的 php 设置不同的设置。这意味着如果您访问该网站,将使用与从命令行运行 php 不同的配置。

在 Debian 上,Apache Web 服务器的设置位于 /etc/php5/apache2/, ,对于 CLI 来说 /etc/php5/cli/.

但我不知道这是否与您的 IMAP 问题有关。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top