我在具有多个域的Centos6 vps服务器上运行Virtualmin。我试图将电子邮件发送到转发到php脚本的电子邮件别名。
电子邮件无法送达,并显示以下消息......
Command died with status 1: "php
/home/mydomain/public_html/mail_pipe.php". Command output: Could not
open input file: /home/mydomain/public_html/mail_pipe.php
我将路径定义为
php /home/mydomain/public_html/mail_pipe.php
我已将文件权限设置为0777 + x
在mail_pipe.php里面我有一个我以前用过的邮件解析脚本。由于那不起作用,现在我只是想做一些事情,所以我可以看到文件是否被访问,因为错误消息说它无法打开文件。
#!/usr/bin/php -q
<?php
$myFile = "steve.txt";
$fh = fopen($myFile, 'a');
$stringData = "File was opened \n";
fwrite($fh, $stringData);
fclose($fh);
?>
我很确定它实际上是在尝试打开正确的文件,因为当目标文件不存在时,我找不到文件错误。
上次我这样做时,我得到了帮助。他做了所有服务器端设置,而我处理了PHP脚本。所以我在这里有点偏离我的元素。
答案 0 :(得分:1)
因此,在与Jamie谈论此事后,这个特定工作流程的用例非常有限。
但是,有一种方法可以实现您的目标,即为此操作创建用户,然后以该用户身份登录到Usermin,并将转发设置为该用户的脚本。
它在Virtualmin中不起作用的原因是别名正在被处理为无人(或系统上的任何后缀用户)用户,该用户无权访问用户主目录。在Usermin下创建它时,它将通过procmail作为创建规则的用户执行操作,因此用户将拥有运行脚本并写入文件所需的权限。
另一种解决方法是,如果脚本不需要向用户的家中写任何内容(例如复杂的自动应答器或其他内容),则将脚本放在没有人的位置访问。
我们目前正在讨论是否要从Virtualmin表单中删除它(因为它具有如此有限的用途并且可能令人困惑),或者使其实际按预期工作。我倾向于让它按预期工作,但考虑到当前的工作方式可能会带来安全性。
答案 1 :(得分:1)
这些是我使用Virtualmin 4.14进行此操作的步骤。
从Virtualmin主页,选择所需的域。
点击&#34;编辑用户&#34;
创建/选择将转发的用户。
点击&#34;登录Usermin&#34;在底部。 (注意:如果不存在,请重启Usermin)
点击&#34; Usermin&#34;在Virtualmin徽标旁边的左上角。 (不直观)
点击&#34;邮件&#34;打开邮件菜单。
点击&#34;邮件转发和回复&#34;
点击&#34;添加邮件转发规则&#34;
点击&#34;启用&#34;
选择&#34; Feed to program&#34;
输入邮件脚本的完整路径。 ie&#39; /home/mydomain/public_html/mail_pipe.php'
文件必须:存在/以shebang / be executable开头
非常感谢Stuporglue用这个脚本作为我的起点...