【问题标题】:PHP: PEAR email sends only on second passPHP:PEAR 电子邮件仅在第二次通过时发送
【发布时间】:2013-08-13 13:57:52
【问题描述】:

我正在使用 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();
     }
 } 

【问题讨论】:

  • 假设这是一个循环?给更多代码我们可以看看...
  • 我已经简化了我的代码并编辑了帖子 - 仍然遇到上面代码的问题。
  • 无循环,一次性调用

标签: php pear


【解决方案1】:

使用 wireshark 找出你真正从服务器得到的响应。可能是服务器开启了灰名单,导致你无法在第一时间发送邮件。

【讨论】:

  • 没有类似的东西,因为我正在运行个人 smpt 进行测试,它适用于 php 的内置 smtp,但与 pear 版本的行为很奇怪
  • 所以你说你不能使用wireshark来分析网络流量,因为究竟是什么?
  • 我没有说我不能使用wireshark,只是说不能有任何灰名单或类似问题。我只能假设这是 pear 库和我的 smtp 之间的一些奇怪的不兼容,因为它适用于例如。谷歌很好。
  • 这就是为什么我告诉你检查你真正从服务器得到的错误信息。没有这些信息,就不可能找出问题所在。
猜你喜欢
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
相关资源
最近更新 更多