PHP ile Mailgun API Kullanarak Mail Gönderme

Merhaba. Bu yazıda sizlere Mailgun API kullanarak nasıl mail göndereceğimizi anlatacağım. Mailgun gelişmiş birçok özelliği ile sektörde lider otonom mail gönderme hizmetlerinden birisidir. Aylık 10.000 adet maili ücretsiz olarak gönderebilirsiniz. Bu hizmeti kullanabilmek için ilk önce bir kullanıcı hesabı oluşturmanız gerekiyor. signup.mailgun.com adresinden kayıt formunu doldurarak hesabınızı oluşturabilirsiniz. Burada sizden kredi kartı bilgilerinizi de istiyor. İsterseniz "Add payment info now" checkbox işaretini kaldırarak kredi kartı bilgilerinizi girmeden kayıt olabilirsiniz.

Kayıt işlemini tamamladıktan sonra sisteme giriş yaptığınızda sağ üstte Region yazan dropdown menüden Avrupa seçeneğini seçiyoruz. Bunun nedeni ise Mailgun hem Amerika'da, hem de Avrupa'da hizmet veren bir firma ve aynı domaini hem Amerika, hem de Avrupa lokasyona ekleyemiyorsunuz. Ben Türkiye'ye yakın olan Avrupa lokasyonu seçtim. Tabi siz istediğiniz lokasyonu seçebilirsiniz. Daha sonra "Domains" menüsünden domain adresinizi ekleyebilirsiniz.

Domaininizi ekledikten sonra Mailgun hizmetini domaininizde kullanabilmeniz için domaininizin DNS kayıtlarına Mailgun tarafından verilen SPF ve DKIM kayıtlarını eklemeniz gerekiyor.

Son olarak Domain Information kısmında domaininize ait bilgiler yer almaktadır. Bunlardan API Key bilgisini kendi kod bloğunuzda kullanacaksınız. (API Key bilgisi size özeldir ve kimseyle paylaşmayınız.) API Base URL ise Avrupa ve Amerika lokasyonda farklıdır. Kodlarda bu farklılığa dikkat ederek Mailgun panelinizdeki bilgileri giriniz.

İşin PHP kısmında ise aşağıdaki fonksiyonu kullanıyoruz. Bu fonksiyon girilen bilgileri cURL kütüphanesini kullanarak Mailgun API sunucusuna iletmektedir. Fonksiyon dört adet parametre almaktadır. Bunlar sırasıyla:

  • Gönderici mail adresi
  • Alıcı mail adresi
  • Mailin konusu
  • Mailin içeriği

<?php
function send_mail($from, $to, $subject, $message)
{
    $api_key="api_key_buraya";
    $domain ="domain_adresi_buraya";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, 'api:' . $api_key);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_URL, 'https://api.eu.mailgun.net/v3/' . $domain . '/messages');
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
        'from' => $from,
        'to' => $to,
        'subject' => $subject,
        'html' => $message
    )));
 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
?>

Fonksiyonda api_key ve domain bilgilerinizi yazdıktan sonra aşağıdaki şekilde fonksiyonu çağırabilirsiniz.

send_mail("gönderici_mail_adresi", "alıcı_mail_adresi", "mailin_konusu", "mailin_içeriği");

Hepsi bu kadar. Mailgun panelinizden son otuz günde kaç adet mail gönderdiğinizi, kaçının alıcıya ulaştığı vb. istatistik bilgilerine ulaşabilirsiniz. İyi çalışmalar.

YORUM FORMU