2013-06-25 56 views
6

Tôi đã tạo mẫu trong Mandrill nhưng tôi không biết cách sử dụng để gửi email.Gửi email có mẫu (Mandrill PHP)

Dưới đây là một ví dụ làm thế nào để sử dụng nó với một html đơn giản:

<?php 

include_once "swift_required.php"; 

$subject = 'Hello from Mandrill, PHP!'; 
$from = array('[email protected]' =>'Your Name'); 
$to = array(
'[email protected]' => 'Recipient1 Name', 
'[email protected]' => 'Recipient2 Name' 
); 

$text = "Mandrill speaks plaintext"; 
$html = "<em>Mandrill speaks <strong>HTML</strong></em>"; 

$transport = Swift_SmtpTransport::newInstance('smtp.mandrillapp.com', 587); 
$transport->setUsername('MANDRILL_USERNAME'); 
$transport->setPassword('MANDRILL_PASSWORD'); 
$swift = Swift_Mailer::newInstance($transport); 

$message = new Swift_Message($subject); 
$message->setFrom($from); 
$message->setBody($html, 'text/html'); 
$message->setTo($to); 
$message->addPart($text, 'text/plain'); 

if ($recipients = $swift->send($message, $failures)) 
{ 
echo 'Message successfully sent!'; 
} else { 
echo "There was an error:\n"; 
print_r($failures); 
} 

?> 

Trả lời

15

Bạn có thể gửi email và sử dụng mẫu bằng công Mandrill PHP API wrapper.

require 'Mandrill.php'; 

$mandrill = new Mandrill('YOUR_API_KEY'); 

$message = array(
    'subject' => 'My subject', 
    'from_email' => '[email protected]', 
    'to' => array(array('email' => '[email protected]', 'name' => 'Marc')), 
    'merge_vars' => array(array(
     'rcpt' => '[email protected]', 
     'vars' => 
     array(
      array(
       'name' => 'FIRSTNAME', 
       'content' => 'Recipient 1 first name'), 
      array(
       'name' => 'LASTNAME', 
       'content' => 'Last name') 
    )))); 

$template_name = 'YOUR-TEMPLATE-NAME'; 

$template_content = array(
    array(
     'name' => 'main', 
     'content' => 'Hi *|FIRSTNAME|* *|LASTNAME|*, thanks for signing up.'), 
    array(
     'name' => 'footer', 
     'content' => 'Copyright 2013.') 

); 

$response = $mandrill->messages->sendTemplate($template_name, $template_content, $message); 
print_r($response); 

Nếu bạn muốn sử dụng SMTP qua SwiFtMailer, bạn có thể gọi Render phương pháp API để làm cho một mẫu, mà sẽ cung cấp cho bạn HTML đầy đủ, mà bạn có thể vượt qua để SwiftMailer nhưng điều đó dường như là một chút của một dài theo cách làm nó so với trình bao bọc PHP API.

+0

cảm ơn, hoạt động của nó, chỉ cần sửa: $ mandrill = new Mandrill ('YOUR_API_KEY'); – Marckaraujo

+0

một thông tin nữa, tôi đã đặt * | pspReference | * bên trong mẫu html và trong merge_vars tôi đã sử dụng: 'name' => 'pspReference', 'content' => 'Hello world'), nhưng nó không thay đổi giá trị, bạn có biết tại sao không? cảm ơn – Marckaraujo

+4

@Marckaraujo bạn có thể cho biết mẫu của bạn trông như thế nào không? – MrCode

Các vấn đề liên quan