【发布时间】:2014-05-04 01:40:12
【问题描述】:
我正在尝试使用 Mandrill 和 PHP 发送电子邮件,但无法发送。
我已经从这里下载了 PHP API 包装器:https://packagist.org/packages/mandrill/mandrill
Mandrill.php 在我的根目录下,而 Mandrill 文件夹在同一目录下。
这是我的代码:
<?php
require_once 'Mandrill.php';
$mandrill = new Mandrill('MY API KEY IS USUALLY HERE');
$message = array(
'subject' => 'Test message',
'from_email' => 'jwjody@yahoo.com',
'from_name' => 'Sender person',
'html' => '<p>this is a test message with Mandrill\'s PHP wrapper!.</p>',
'to' => array(array('email' => 'jwjody@yahoo.com', 'name' => 'Recipient 1')),
'merge_vars' => array(array(
'rcpt' => 'recipient1@domain.com',
'vars' =>
array(
array(
'name' => 'FIRSTNAME',
'content' => 'Recipient 1 first name'),
array(
'name' => 'LASTNAME',
'content' => 'Last name')
))));
//print_r($mandrill->messages->sendTemplate($template_name, $template_content, $message));
echo ("hello");
?>
但它不会发送。我不确定失败在哪里。我错过了什么明显的东西吗?
我现在看到了问题。
我知道现在发生了什么!
我变了
$mandrill->messages->sendTemplate($template_name, $template_content, $message));
到
$mandrill->messages->send($message, $async=false, $ip_pool=null, $send_at=null);
而且它有效!
【问题讨论】:
-
取消注释 print_r 后得到什么结果?
-
你试过调试吗?你检查过你的错误日志吗?您是否检查过您的队列中的 sendmail(或您的服务器使用的任何机制)?
-
@Morgan 我从这里获取了如何使用 PHP 发送的代码:stackoverflow.com/questions/14473592/… 但我没有使用模板。所以 print 语句现在被注释掉了。
-
@MikeBrant 我不太确定要进行哪种调试。我把回声放在最后以确保发生了什么。
-
既然你已经弄清楚你做了什么,你应该写下你做了什么作为你的问题的答案,并接受它作为正确的答案。