电子邮件标题为;“格式不正确”;使用php中的sendmail命令时。为什么?

电子邮件标题为;“格式不正确”;使用php中的sendmail命令时。为什么?,php,sendmail,malformed,Php,Sendmail,Malformed,我的sendmail命令有问题 我正在从数据库调用中提取值,它们看起来不错。 mail命令如下所示: sendmail(urldecode($row['tracker']),urldecode($row['recipient']),urldecode($row['docurl']),urldecode($row['last_accessed'])); function sendmail($vtracker,$vrecip,$vrawurl,$viewed){ $to = $vtrack

我的sendmail命令有问题

我正在从数据库调用中提取值,它们看起来不错。 mail命令如下所示:

sendmail(urldecode($row['tracker']),urldecode($row['recipient']),urldecode($row['docurl']),urldecode($row['last_accessed']));

function sendmail($vtracker,$vrecip,$vrawurl,$viewed){
    $to = $vtracker;
    $subject = $vrecip . " has viewed the presentation you sent them.</br>";
    $body= "Full document url:  " . $vrawurl . "<br/>".
    "Time and Date Viewed:  :" .$viewed ;

    if (!mail($to, $subject, $body)) {
       echo("<p>Message delivery failed...</p>");
    }
}
我收到一个错误(从服务器上的错误日志中检索到),看起来像这样

[error] [client 66.249.68.23] File does not exist: /var/chroot/home/content/m/3/s/m3sglobal/html/broadband/missing.html
[Tue Feb 21 20:17:15 2012] [error] [client 70.113.8.83] Failed loading /usr/local/zo/4_3/ZendOptimizer.so:  /usr/local/zo/4_3/ZendOptimizer.so: undefined symbol: empty_string
[Tue Feb 21 20:17:17 2012] [error] [client 70.113.8.83] malformed header from script. Bad header=/home/content/m/3/s/m3sglobal/: Nitrofill_Presentation.php

为什么标题“格式不正确”?

我认为花点时间在标题上不会有什么坏处

您的
to
字段中填充了
Bob
。这不是一个合法的地址。有效电子邮件地址的格式相当复杂,但如今,地址的格式通常为
localpart@domain
。(通常不支持通过
%
用户名说明符或
bang路径传递到地址的旧格式;此外,
用户名@[]
在不同的服务器或配置上可能受支持,也可能不受支持。通常,电子邮件地址中必须有一个
@
,才能将本地部分与域分开。)

您似乎正在使用用户提供的数据,但未确认该数据是否正在执行。(另请参见。)

您的
subject
字段包含一个

,这是毫无意义的,因为
subject:
标题被解释为纯文本。此字段似乎还使用了数据库提供的原始数据


消息正文还包括

,这是毫无意义的,因为您的消息不包含任何表示存在的标记。

这不是sendmail命令,而是您编写的一个函数,名为“sendmail”,并调用PHP自己的mail()函数。您是否在CGI模式下运行PHP?SAPI模式下的PHP永远不会出现格式错误的标头错误。您正在将
$vtracker
分配给
$to
,但是,
$vtracker
显示的值为
Bob但这不是有效的电子邮件地址。我想你已经用
$vrecip
切换了。好的,我修复了参数和中断。这是输入字段的回音,以及我得到的错误消息:ZiFeCa75l greg。mcgee@advetel.com gregmcgee@yahoo.com2012年2月20日星期一10:36:22 CST警告:mail()[function.mail]:mail()函数的参数错误,邮件未发送。在第59行的/home/content/m/3/s/m3sglobal/html/nitrofill/tr/nitrofill_Presentation.php中,第59行是if(!mail($to,$subject,$message)){echo(消息传递失败…

);您不能在注释中真正编码格式;他们只是一次性交易。最好是编辑你的原始问题并在那里添加新内容。我打算放弃这种方法。我的web主机(godaddy.com)提供了一个有效的web表单邮件程序。我只需要把我的数据字段连接到它,我已经开始工作了。谢谢你的意见。@I_小姐:呵呵,我不能怪你。与戈达迪联系更近是一件遗憾的事,但毫无疑问,正确地使用邮件是微妙而复杂的。
[error] [client 66.249.68.23] File does not exist: /var/chroot/home/content/m/3/s/m3sglobal/html/broadband/missing.html
[Tue Feb 21 20:17:15 2012] [error] [client 70.113.8.83] Failed loading /usr/local/zo/4_3/ZendOptimizer.so:  /usr/local/zo/4_3/ZendOptimizer.so: undefined symbol: empty_string
[Tue Feb 21 20:17:17 2012] [error] [client 70.113.8.83] malformed header from script. Bad header=/home/content/m/3/s/m3sglobal/: Nitrofill_Presentation.php