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