Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 电子邮件::发送::如果从cgi运行,Gmail无法连接到服务器_Perl_Email_Cgi_Connect_Send - Fatal编程技术网

Perl 电子邮件::发送::如果从cgi运行,Gmail无法连接到服务器

Perl 电子邮件::发送::如果从cgi运行,Gmail无法连接到服务器,perl,email,cgi,connect,send,Perl,Email,Cgi,Connect,Send,每当我使用email::send::Gmail运行一个简单的发送电子邮件功能时,我都会遇到以下错误: [2013年1月28日星期一11:37:57][error][client 31.171.245.]发送电子邮件时出错:电子邮件::发送::Gmail:连接到服务器smtp.Gmail.com时出错,地址为/usr/local/share/perl5/email/Send.pm第252行,参考号:http://**.cgi 然而,当从命令行运行时,完全相同的代码正在工作。从命令行远程登录时,sm

每当我使用email::send::Gmail运行一个简单的发送电子邮件功能时,我都会遇到以下错误:

[2013年1月28日星期一11:37:57][error][client 31.171.245.]发送电子邮件时出错:电子邮件::发送::Gmail:连接到服务器smtp.Gmail.com时出错,地址为/usr/local/share/perl5/email/Send.pm第252行,参考号:http://**.cgi

然而,当从命令行运行时,完全相同的代码正在工作。从命令行远程登录时,smtp.gmail.com也可用。这是因为坚持还是我错过了什么

尝试(在cgi脚本中)执行以下操作:

use Net::SMTP::SSL;
Net::SMTP::SSL->new( 'smtp.gmail.com', Port => 465, Debug => 1 );
并查看调试信息是否告诉您任何有用的信息


您的cgi脚本是否可能使用不同的perl,安装了不同的模块?

Alrghit,我知道了。似乎CentOS上的selinux阻止了来自httpd的外部连接,因此脚本没有连接

你需要输入这个

setsebool-p httpd_can_network_connect=1


为了连接。

也许GMail特别禁止通过脚本发送电子邮件?而且,也许这个线程会有所帮助:它是从命令行运行的,我看不出有任何原因为什么相同的代码不能工作,因为CGIThis代码段是这样工作的,并且应该使用相同的perl,否则,错误日志中会有一个关于丢失模块的条目,我以前见过这样的条目。我甚至将发送部分导出到外部脚本,并尝试通过提供参数发送,仍然是同一个错误。该代码段实际上并没有检查是否成功,但您从Email::Send::Gmail收到的错误消息表明新调用失败。调试信息是什么样子的,从命令行运行有什么不同吗?谢谢,可能是一个愚蠢的问题,但是我如何将调试输出到CGI(即显示在浏览器中),或者我应该将stdout重定向到stderr以便在错误日志中读取它?