使用php脚本的梨邮件就停止了

时间:2012-06-23 17:22:54

标签: php email pear

我一直在尝试使用pear和php脚本发送邮件。我已经搜索了一天以上,还没有找到我的问题。当我在网站上运行此代码时,没有任何反应。它会快速加载然后停止。我运行了一些echo命令,我发现代码专门停在:

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

就是这样。没有其他事情发生。我没有得到任何错误输入或任何东西,我只是看到我的回声发生在此之前,之后没有回声。我安装梨,以及梨邮件。我认为'我正确安装它们,因为我可以在任何地方输入“pear”到命令行,它会调出菜单。我通过我的路由器和防火墙打开了端口465,tcp。我在Windows XP机器上。我不知道错误日志在哪里可以查看是否有任何不良情况发生。我的服务器是apache 2.2,托管在这个Windows框中。

 <?php

 require_once "Mail.php";

 $from = "user1@gmail.com";
 $to = "user2@yahoo.com";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $server = "ssl://smtp.gmail.com";
 $username = "user1@gmail.com";
 $password = "pass";

 $headers = array (
   "From" => $from,
   "To" => $to,
   "Subject" => $subject);
 $smtp = Mail::factory("smtp",
   array ("host" => $server,
         "port" => 465,
         "auth" => true,
         "username" => $username,
         "password" => $password));
 $mail = $smtp->send($to, $headers, $body);
 if (PEAR::isError($mail)) {
   echo("<p>" . $mail->getMessage() . "</p>");
  } else {
   echo("<p>Message successfully sent!</p>");
  }
 ?>

2 个答案:

答案 0 :(得分:1)

Gota喜欢这些问题如何花费10个小时的工作并且如此简单。

所以当我配置PEAR时,我做得正确。我安装了包mail,mail_mime和net_socket。我尝试安装net_smtp,但它给了我随机错误“没有可用于包装梨的版本......”。我认为这意味着包已经安装,我无法用它做任何其他事情。我不确切地知道这件事是如何被窃听的,但实际上我的“C:\ Documents and Settings \ user \ Local Settings \ Temp”文件夹中生成了一个梨文件夹。我删除了名为pear的文件夹,然后成功运行'pear install net_smtp'。之后,我运行了我的PHP代码,一切都像魅力(能够通过gmail smtp服务器成功发送我的电子邮件)。

感谢您的帮助,我很高兴能够解决这个问题! :)

答案 1 :(得分:0)

您不需要前进端口,因为连接是出站的。可能是您的ISP阻止了连接。在出站端口25上常见,而不是在465上,但它发生了 无论如何,你的代码看起来很好。