【问题标题】:Mail PEAR package not sending email邮寄 PEAR 包裹不发送电子邮件
【发布时间】:2014-09-13 10:43:24
【问题描述】:

我已经设置了一个脚本,它应该根据查询发送电子邮件。代码是这样的:

$firemail = mysql_query("SELECT `email` from `users` WHERE `reference` = ''$customer' ");
$to      = $firemail;

忽略这不是 PDO 的事实,然后我将 $firemail 传递给 smtp,如下所示:

$headers = array (
    'From' => $from,
    'To' => $firemail,
    'Subject' => $subject,
    'Reply-To' => 'test@test.com',
    'MIME-Version' => "1.0",
    'Content-type' => "text/html; charset=iso-8859-1\r\n\r\n");
    $smtp = Mail::factory('smtp', array(
        'host' => 'smtp.myservice.com',
        'port' => '123',
        'auth' => true,
        'username' => 'user@test.com',
        'password' => 'supersecretpassword'
    ));

我已经测试过 SMTP 可以正常工作,当我手动输入收件人时,它会按设计发送电子邮件。 $firemail 包含的查询是有效的,并返回预期的结果。我已经回显了 $customer var,这会返回预期的结果。

所以假设我的所有代码都是有效的并且可以正常运行。为什么我没有收到电子邮件?

谢谢!

【问题讨论】:

  • 你没有得到任何结果......相反,你正在将一个mysql对象存储在你$firemail var ;)
  • 您好,感谢您的快速回复。我快速浏览了列表,error_reporting(-1) 没有返回错误。我正在通过 PHPMailer 发送邮件,并且没有使用 @ 抑制任何错误消息。当我硬编码地址时,地址肯定有效,并且我通过 Mandrill 发送电子邮件(它没有收到消息,表明问题在我这边),所以垃圾邮件拦截不是问题。我添加了一个条件来捕获错误并返回消息已发送。
  • @RobertRozas - 我是个白痴!谢谢你,修好了。需要更多咖啡!
  • 没问题@EspressoPowered,我很乐意提供帮助;)
  • @RobertRozas 将其作为答案发布,以便我们为您投票,提问者可以将其标记为已接受的答案。

标签: php mysql email smtp


【解决方案1】:

这是返回一个mysql对象而不是一个结果:

$firemail = mysql_query("SELECT `email` from `users` WHERE `reference` = ''$customer' ");
$to = $firemail;

应该是:

$result = mysql_query("SELECT `email` from `users` WHERE `reference` = ''$customer'");

while ($fila = mysql_fetch_assoc($result)) {
  $firemail[] = $fila['email']
}

【讨论】:

  • 非常感谢!我傻了^^
  • 非常感谢@JohnConde ...新年快乐 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 2015-07-08
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多