PERL CGI mailto不起作用

时间:2013-10-10 19:46:15

标签: perl cgi mailto

我有一份用PERL CGI编写的网络报告。它从平面文件数据库中提取一些不断变化的数据,并在网页的表格中显示当前状态。我希望能够点击一个链接,将所有数据推送到可以在发送之前编辑的电子邮件中。

这就是我在页面上的最后一块HTML。 “转至状态”链接有效,但mailto:xxx@xx.com链接导致服务器错误。出于某种原因,“mailto”无法在CGI脚本中运行吗?它被渲染为HTMl所以我不确定为什么它不会。

sub EndHtml {
   print "<P align=right> <a href='http://www.xxx.com/~a0868183/cgi-bin/xxx.cgi'>Go to Status</a> </p>\n";
   print "<p align=right> <a href='mailto:xxx@xx.com'></a>Send EOS</p>\n";
   print "</BODY></HTML>\n";
}

(一旦我搞清楚,我会将带有数据的变量放入电子邮件中)

谢谢, 贾里德

1 个答案:

答案 0 :(得分:4)

@在双引号分隔字符串中具有特殊含义。

始终使用以下命令启动脚本:

use strict;
use warnings;

然后你会收到警报(如果你读了你的日志文件):

Possible unintended interpolation of @xx in string

然后你可以逃脱它:

mailto:xxx\@xx.com

或使用单引号字符串:

print q{<p align=right> <a href='mailto:xxx@xx.com'></a>Send EOS</p>\n};

或者不要将HTML嵌入到Perl的中间并使用模板语言(如Template Toolkit)。


您可能也希望在锚点中添加一些内容。