Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
PHP:PEAR电子邮件仅在第二次传递时发送_Php_Pear - Fatal编程技术网

PHP:PEAR电子邮件仅在第二次传递时发送

PHP:PEAR电子邮件仅在第二次传递时发送,php,pear,Php,Pear,我正在使用pear发送电子邮件,使用下面的代码,第一次通过时每次都会出现此错误: “设置发件人失败:aa@bb.com[SMTP:接收到无效的响应代码 来自服务器(代码:-1,响应:)]” 如果我在发送后调试并将执行点设置回“从这里重新运行”,它工作得很好-几乎就像第一次没有正确初始化一样-有人对此有什么想法吗 require_once "Mail.php"; function SendEMail() { $from = "Sender Sender <sender@exam

我正在使用pear发送电子邮件,使用下面的代码,第一次通过时每次都会出现此错误:

“设置发件人失败:aa@bb.com[SMTP:接收到无效的响应代码 来自服务器(代码:-1,响应:)]”

如果我在发送后调试并将执行点设置回“从这里重新运行”,它工作得很好-几乎就像第一次没有正确初始化一样-有人对此有什么想法吗

require_once "Mail.php";

function SendEMail() {

     $from = "Sender Sender <sender@example.com>";
     $to = "AA BB <aa@bb.com>";
     $subject = "Test";
     $body = "This is a test";

     $host = "myhost";

     $headers = array ('From' => $from,
                        'To' => $to,
                        'Subject' => $subject);

     //Re-run from here        
     $smtp =& Mail::factory('smtp',
       array ('host' => $host,
         'auth' => false,
         'username' => '',
         'password' => ''));

     $mail = $smtp->send($to, $headers, $body);

     if (PEAR::isError($mail)) {
        $s = $mail->getMessage();
     }
 } 
require_once“Mail.php”;
函数sendmail(){
$from=“发件人”;
$to=“AA BB”;
$subject=“Test”;
$body=“这是一项测试”;
$host=“myhost”;
$headers=数组('From'=>$From,
'至'=>$至,
“主题”=>$Subject);
//我们从这里出发
$smtp=&Mail::工厂('smtp',
数组('host'=>$host,
'auth'=>false,
'用户名'=>'',
'密码'=>'');
$mail=$smtp->send($to、$headers、$body);
if(PEAR::isError($mail)){
$s=$mail->getMessage();
}
} 

使用wireshark找出您真正从服务器得到的响应。可能服务器已经激活了greylisting,因此您无法第一次发送邮件。

假设这是一个循环?给我们更多的代码,我们可以看一看…我简化了我的代码并编辑了帖子-仍然像上面那样得到代码的问题。没有循环,一次性调用没有任何类似的,因为我正在运行一个个人smpt进行测试,它与php的内置smtp配合使用效果很好,但在pear版本中表现得很奇怪。你说你不能使用wireshark来分析网络流量,因为到底是什么?我没有说我不能使用wireshark,只是说不可能有任何灰色列表或类似的问题。我只能假设pear库和我的smtp之间存在某种奇怪的不兼容,因为它与google fine一起工作。这就是为什么我要检查您从服务器上真正收到的错误消息。没有这些信息,就不可能找出问题所在。