【发布时间】:2015-05-09 23:39:12
【问题描述】:
我正在尝试将我的网站切换到 Mandrill,但是我在使用 PHP API 时遇到了一些问题。
有两个问题:
- 首先,它发送了两次电子邮件。底部的代码是我拥有的所有代码(PHP 开始和结束标签除外),我无法弄清楚为什么它每次都会发送两次电子邮件。
- 其次,我从 cURL 收到一条错误消息,指出 URL 未设置。正在发送电子邮件,因此显然设置了一个 URL。错误如下。
这是我的代码:
require_once './libraries/Mandrill.php';
try {
$mandrill = new Mandrill('myapikey');
$template_name = 'my-template-slug';
$template_content = '';
$message = array(
'to' => array(
array(
'email' => 'a_test@emailaddress.com',
'name' => 'RecipientsName',
'type' => 'to'
)
),
'auto_text' => true,
'merge_vars' => array(
array(
'rcpt' => 'a_test@emailaddress.com',
'vars' => array(
array(
'name' => 'USERNAME',
'content' => 'user1234'
),
array(
'name' => 'CONFIRM_CODE',
'content' => '19874lahg62378hwsi'
)
)
)
)
);
$result = $mandrill->messages->sendTemplate($template_name, $template_content, $message);
} catch(Mandrill_Error $e) {
echo 'A mandrill error occurred: ' . get_class($e) . ' - ' . $e->getMessage();
throw $e;
}
这是错误:
发生山魈错误:Mandrill_HttpError - API 调用 消息/发送模板失败:未设置 URL!致命错误:未捕获 异常 'Mandrill_HttpError' 与消息 'API 调用 消息/发送模板失败:未设置 URL!在 /Users/Gavin/Desktop/Web/mandrill-test/libraries/Mandrill.php:126 堆栈跟踪:#0 /Users/Gavin/Desktop/Web/mandrill-test/libraries/Mandrill/Messages.php(160): Mandrill->call('messages/send-t...', Array) #1 /Users/Gavin/Desktop/Web/mandrill-test/index.php(70): Mandrill_Messages->sendTemplate('my-template-slug', Array, Array) #2 /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/php/setup.php(131): require('/Users/Gavin/De...') #3 {main} 抛出 /Users/Gavin/Desktop/Web/mandrill-test/libraries/Mandrill.php 上线 126
【问题讨论】:
-
是否抛出异常并同时发送两次电子邮件?还是在多次调用后发生这种情况?我会尝试调试/打印以查看您的方法是否以某种方式被调用了两次。另外,在这里:stackoverflow.com/questions/22647687/… 他们建议使用 send 而不是 sendTemplate
-
上面的代码是唯一使用的代码。是的,它抛出异常并发送电子邮件两次。
-
我还应该补充一点,因为这个问题正在发生,我转而使用 Mandrill 的 SMTP 服务器而不是 API(我自己的模板托管在我的 Web 服务器上)并且它只发送一次。
-
在这种情况下,这似乎是他们 API 中的一个错误。我仍然会尝试stackoverflow.com/questions/22647687/… 中的建议
标签: php google-app-engine mandrill