2014-03-25 69 views
5

我試圖發送電子郵件使用Mandrill和PHP,我無法讓它發送。使用PHP發送電子郵件與Mandrill

我從這裏下載的PHP API包裝:https://packagist.org/packages/mandrill/mandrill

Mandrill.php是我的根和山魈文件夾是在同一目錄下。

這裏是我的代碼:

<?php 
require_once 'Mandrill.php'; 

$mandrill = new Mandrill('MY API KEY IS USUALLY HERE'); 
$message = array(
    'subject' => 'Test message', 
    'from_email' => '[email protected]', 
    'from_name' => 'Sender person', 
    'html' => '<p>this is a test message with Mandrill\'s PHP wrapper!.</p>', 
    'to' => array(array('email' => '[email protected]', 'name' => 'Recipient 1')), 
    'merge_vars' => array(array(
     'rcpt' => '[email protected]', 
     '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); 

和它的作品!

+0

取消註釋print_r後得到的結果是什麼? – Morgan

+0

您是否嘗試過調試?你有沒有檢查你的錯誤日誌?你有沒有檢查你的隊列中的sendmail(或者你服務器使用的任何機制)? –

+0

@Morgan我採取的代碼如何使用PHP從這裏發送:http://stackoverflow.com/questions/14473592/simple-php-function-to-send-an-email-with-mandrill/14486237#14486237 但我沒有使用模板。所以打印聲明現在已被註釋掉。 –

回答

2

而不是調用sendTemplate()函數我應該用

$mandrill->messages->send($message, $async=false, $ip_pool=null, $send_at=null); 

有一次,我改變了函數調用郵件發送。

+0

如果您將所有代碼與答案一起顯示,將會很有幫助。因爲你註釋掉了print_r,所以我不能說這是修復的原因,因爲它會在你原來的代碼中被註釋掉。 – thatgibbyguy