2016-03-07 14 views
6

Bu yüzden Laravel 5.1 kullanıyorum ve Mailgun ile entegre olmaya çalışıyorum. Peki, bu kolay, ama şimdi e-postalarımla birlikte uygulamamdan custom variables göndermeye çalışıyorum.Laravel'in Mailgun sürücüsünü kullanarak, özel verilerinizi ve etiketlerinizi e-postanızla (incelikle) nasıl gönderirsiniz?

Aslında uygulamamıza "yeni yönleri" ve benzerleri nedeniyle Mandrill'den geçiyorum. Onlarla, değişkenleri ve etiketleri e-posta başlıklarını kullanarak sağlayabiliyordum, ancak Mailgun ile sadece SMTP ile gönderdiğinizde çalışıyor. Laravel'de, Mail::send() bir API çağrısı kullanır, bu yüzden teoride metadatayı "v:my-custom-data" => "{"this_id": 123}" ile ekleyebilirim, ancak bunun gibi çekirdek sınıfları değiştirmekten kaçınmak isterim.

Ben de Bogardo/Mailgun kullanarak kabul ama sonra Mailgun::send() tüm Mail::send() s değiştirmek zorunda kalacak, sonra (çevre tabanlı e-posta sürücüsü) lokal olarak e-postalar göndermek olamazdı ve ardından uygulama "evli" olacağını Mailgun'a.

Bunu daha önce yapan var mı? Burada açık değilse lütfen bana bildirin.

cevap

15

Kendi sorunumu giderdim.

// Send email with custom variables and tags in Laravel 
Mail::send('emails.blank', 
    ['html' => 'This is a test of Mailgun. <strong>How did it work out?</strong>'], 
    function($message) { 
     $message->to('[email protected]'); 
     $message->subject('Mailgun API Test'); 

     $headers = $message->getHeaders(); 
     $headers->addTextHeader('X-Mailgun-Variables', '{"msg_id": "666", "my_campaign_id": 1313}'); 
     $headers->addTextHeader('X-Mailgun-Tag', 'test-tag'); 
    }); 

Benim test sadece yetersizdi: SİZ SMTP yöntemiyle özel değişkenler eklemek CAN ben yanılmışım. Ama bilmek çok güzel. Belgeler gerçekten bunu açıklamıyor.

+0

, SparkPost API benzer meta işleme olmasına rağmen, bu şekilde davranmaz. Son zamanlarda denedim. –

1

sadece laravel 5 böyle yapabilirsiniz:

Bir yan not olarak
Mail::send(['text' => 'my_template'], $data, function ($message) { 
    .. 
    $message->getSwiftMessage()->getHeaders()->addTextHeader('X-Mailgun-Tag', 'my-tag'); 
}); 
İlgili konular