电子邮件管道 - 工作但电子邮件返回错误

时间:2014-12-12 08:27:49

标签: php linux email

我已将我的电子邮件转发到“管道到程序”。管道似乎正在工作,因为当电子邮件发送到我的管道电子邮件地址时,它会返回一条未传递的消息,其中包含我的PHP脚本中的错误,例如:

此邮件是由邮件传递软件自动创建的。

您发送的邮件无法发送给其一个或多个收件人。这是一个永久性错误。以下地址失败:

管道到| /home/badihbar/public_html/handEmlTst.php     由badih@badihbarakat.com生成     本地交付失败

在传递尝试期间生成了以下文本:

------管道到| /home/badihbar/public_html/handEmlTst.php        由badih@badihbarakat.com生成------

/home/badihbar/public_html/handEmlTst.php:第1行:?php:没有这样的文件或目录 /home/badihbar/public_html/handEmlTst.php:line 3://:是一个目录 /home/badihbar/public_html/handEmlTst.php:line 4://:是一个目录 /home/badihbar/public_html/handEmlTst.php:第5行:意外令牌(' /home/badihbar/public_html/handEmlTst.php: line 5:附近的语法错误// date_default_timezone_set(“Asia / Muscat”);'

------这是邮件的副本,包括所有标题。 ------

显然,由于某种原因,它没有识别php文件有php脚本。我怀疑的是第一线本身。我怎么知道在“#!”后我应该放置什么路径? ?

我的php脚本来自handEmlTst.php:

#!/usr/lib/php -q
<?php

// include_once "Libraries/connection.class.php";
// include_once "includes/readini.inc.php";
// date_default_timezone_set("Asia/Muscat");

$starttime = date("h:i:s");

// create the connection object...
$s = ini_get("mysql.default_host");

$conn = mysql_connect($s,'badihbar_badih','letmein2013');

$db = "badihbar_supportcenter";

$attachments = array();

if(mysql_error())
{
    print "Error Occured: ".mysql_error()."<br>";
    $err = true;
}

mysql_select_db($db,$conn);

$commString  = "INSERT INTO scriptEmails (Message) VALUES ('From the Script - ".$starttime."')";

// , '".mysql_real_escape_string($email)."'

$result = mysql_query($commString, $conn);
if(mysql_error())
{
    // echo "Error Occured Saving Data: ".mysql_error()."<br>";
    // print $Conn->commString."<br>";
}


?>

我已经检查了phpinfo()的路径,但老实说不知道我在找什么。所以,我认为php解释器将在usr / lib /或其他东西。我应该用我的域用户或其他东西替换usr吗?如果有人可以就此提出建议,我感激不尽。

非常感谢

2 个答案:

答案 0 :(得分:4)

毕竟我设法让它运转起来。以下是让所有人受益的步骤...... :)

  1. 我使用phpinfo()来获取php解释器的路径。我使用了“配置文件(php.ini)Path”参数值,这是我的服务器的usr / lib /。
  2. 使用#!/ usr / lib / php -q作为我处理脚本中的第一行。
  3. 这部分是我的问题。上传文件为ASCII,而不是二进制!
  4. 确保上传文件的chmod为755。
  5. 在我的cpanel中设置将我的电子邮件地址转发到“管道到程序”并输入我上传的php脚本文件的路径。
  6. 就是这样做的。正如我所提到的,我的问题是FTP应用程序上传的文件是二进制而不是ASCII。

    谢谢,所有......:)

答案 1 :(得分:-1)

您还可以在PHP文件的起始行使用#!/ usr / local / bin / php,这是cli二进制文件而不是cgi二进制文件。

这对我有用,如果你通过@Badih Barakat所说的上述案例