Hatırlayacaksınız yakın zamanda MailChimp API V2 ile Sisteme kullanıcı eklemek üzerine bir makale yazmıştım.. Şimdi ise mailChimp üzerinden mail gönderme işlemine değineceğim. MailChimp mail gönderme işlemleri için Mandrill adında bir hizmet sunmakta bizlere. Bizde kısa yoldan bunu inceleyeceğiz..
Öncelikli olarak mandrill kullanıcı adı şifreniz ile giriş yapıp sisteme daha sonra bir api key oluşturun kendinize. Burada sunucunuzun ip adresine tanımlayın ki bu api dışardan kötü niyetli kişiler tarafından kullanılamasın.. Daha sonra sıra geldi Mandrill kodlarını indirmeye.
Son sürümünü buradan indirip zip dosyasını açınız. Kaynak kodları projenize ekleyiniz ve kodlarda çağıralım
<?php require_once 'projem/includes/Mandrill.php'; $mandrill = new Mandrill('API_KEY'); ?>
Sırada gönderme işlemi var..
$mails[] = array('email' => 'gidecek_kisi@siyyah.com', 'name' => 'Gidecek Kişi','type' => 'to'); foreach($mails as $key => $val) { try { $mandrill = new Mandrill('API_KEY'); $message = array( 'html' => $mesaj, 'subject' => $konu, 'from_email' => 'info@siyyah.com', 'from_name' => 'Siyyah', 'to' => array($val) ); $async = true; $result = $mandrill->messages->send($message, $async); } catch(Mandrill_Error $e) { echo 'Mail Servisi mandrill hata döndürdü ve işlem tamamlanamadı: ' . get_class($e) . ' - ' . $e->getMessage(); throw $e; } }
Aslında detay çoktu da ben kafa karıştırmasın diye biraz burada sadeleştirdim.
to kısmında gideni tanımlarken fark ettiyseniz array içinde tanımladım. Burada birden fazla adresi de yazabilirsiniz ben kişiye özel mail yolladığım için tek tek yollattım, eğer tek mail herkese gidecekse zaten döngü içinde kullanmanıza gerek yok bu işlemi..
Birde 10 taneden sonra sıraya ekliyor async false yapsanız bile.. Bulk mail olmaması adına zaten hepsini tek seferde yollamamanızı öneririm..
Kolay gelsin herkese..
merhaba ben bu apiyi kullaranak verı tabanındakı 5000 kısıye etkınlık duyurularını haftada 2 kez atmak ıstıyorum maıl adreslerını mysqlden buraya array seklınde nasıl alırım acaba
Dataları okuduktan sonra while ile dönerken array e atabilirisiniz. sonrası zaten aynı.. Tabi haftada iki kere yollama işlemini de ister cronjob a bağlayın ister sitenizde bir yere gömün ama cron daga sağlıklı olur..
Mysql den data okuma ve yazma konusuna hakim değilseniz yazmış olduğum diğer makalelere göz gezdiriniz..
Aslında arraya atmaya bile gerek yok sanırım $mailler = mysql_query(“sorgu”);
olarak direk olarak alabilirsiniz mailleri, sadece sorgu kısmında yalnızca mail adreslerini alacak şekilde filtre eklemelisiniz.
Merhaba Onur Bey,
Ben toplu mail gönderiminde şunu eklemek istiyorum nasıl yapabilirim
Mesela bir bayram kutlaması toplu mesaj atacağım ama kişiye özelmiş gibi olacak örnek veriyorum
Sayın, Onur Can Alp
Sayın, dan sonraki ismi sistem yazacak yani kimlere gönderiyorsam hepsine otomatik olarak ismi kendi yazmasını istiyorum
Konuyu konuştuk ve çözüldüğüne göre geçmiş olsun demem yeterli 🙂