2013-06-25 8 views
6

Ich habe eine Vorlage in Mandrill erstellt, aber ich weiß nicht, wie man E-Mails sendet. HierE-Mail senden mit Vorlage (Mandrill PHP)

ist ein Beispiel, wie man es verwenden, um mit einem einfachen HTML:

<?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); 
} 

?> 

Antwort

15

Sie können die E-Mail und verwenden Sie die Vorlage senden, indem Sie die Mandrill PHP API wrapper verwenden.

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); 

Wenn Sie den SMTP über Swiftmailer verwenden möchten, können Sie die Render-API-Methode aufrufen, um eine Vorlage zu machen, die Ihnen die vollständige HTML geben, die Sie zu Swiftmailer passieren kann, aber das scheint ein bisschen ein langatmige Art, dies im Vergleich zum PHP-API-Wrapper zu tun.

+0

danke, es funktioniert, nur eine Korrektur: $ mandrill = neuer Mandrill ('YOUR_API_KEY'); – Marckaraujo

+0

eine weitere Info, ich habe * | pspReference | * innerhalb HTML-Vorlage und in merge_vars ich verwendet: 'Name' => 'pspReference', 'Inhalt' => 'Hallo Welt'), aber es ändert sich nicht Wert, weißt du warum? danke – Marckaraujo

+4

@Marckaraujo können Sie zeigen, wie Ihre Vorlage aussieht? – MrCode