我试图将我的网站切换到Mandrill,但是我在使用PHP API方面遇到了一些问题。
有两个问题:
这是我的代码:
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错误: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->呼叫(' messages / send-t ...',数组)#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): 要求(' / Users / Gavin / De ...')#3 {main}投入 /Users/Gavin/Desktop/Web/mandrill-test/libraries/Mandrill.php上线 126
答案 0 :(得分:2)
Mandrill劫持链接并注入自己的URL,以便通过其服务器重新路由链接。这导致用户在进入右页之前在浏览器中看到了mandrill URL
您帐户的Sending Defaults页面上有一个用于点击跟踪的选项(应该是一个下拉菜单,靠近顶部,位于跟踪打开的复选框下方)。您选择的内容将默认选项应用于所有邮件,除非您为点击跟踪提供不同的每封邮件设置。使用SMTP,您可以使用自定义SMTP标头基于每封邮件设置点击跟踪。有关使用SMTP标头进行自定义的详细信息,请参阅Mandrill KB here。
答案 1 :(得分:0)
<?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->send($message, $async=false, $ip_pool=null, $send_at=null);