与电子邮件转发器的电子邮件管道不起作用



我有一个简单的电子邮件管道脚本。但我需要一份发送到另一个电子邮件地址的电子邮件副本。不幸的是,我没有收到我想要的电子邮件。

代码;

#!/usr/bin/php -q
<?php
$email_msg = ''; // the content of the email that is being piped
$email_addr = 'sales@flensmuts.nl'; // where the email will be sent
$subject = 'Piped:'; // the subject of the email being sent
// open a handle to the email
$fh = fopen("php://stdin", "r");
// read through the email until the end
while (!feof($fh)){
$email_msg .= fread($fh, 1024);
}
fclose($fh);
// send a copy of the email to your account
mail($email_addr, $subject, "Piped Email: ".$email_msg);
?>

您的邮件服务器日志可能会对此有所说明。我的猜测是,它可能会失败,因为您添加的前缀导致邮件格式错误。尝试不受影响地发送消息,如下所示:

mail($email_addr, $subject, $email_msg);

另外,对于像这样的简单转发,您可以直接设置邮件服务器来执行此操作,而无需通过脚本。

脚本中没有错误检查。在您的脚本中没有检测它是否正在运行。您没有说明为什么您认为脚本被触发。您还没有说明mail((在您的测试站点上是如何工作的。

分解问题。将此脚本替换为将stein转储到文件中以查明输入集成是否存在问题的脚本。

编写并运行一个脚本,该脚本在手动调用时使用mail((发送电子邮件。如果你控制MTA,那么即使这些实验成功,也要读取日志。

然后回到你原来的剧本。添加一些日志记录。检查mail((返回的值。检查传递路径是否接受带有破损信封的转发邮件。

最新更新