AWS SES ile E-Mail Gönderimi

Amazon’un email gönderme servisi olan SES ile email göndermek çok kolay, ancak işin içine attachment girince biraz kasıntı olabiliyor. Şimdi PHP ile AWS’nin SES’ine kulak veriyoruz.aws-ses

Öncelikle attachment olayı için pear’ı ve pear’ın Mail_Mime package’ini projemize dahil ediyoruz. Bunu composer üzerinden dahil etmek için şu gist‘i inceleyebilirsiniz.

[code language=”php”]
$mailmime = new Mail_mime("rn");
$mailmime->setTxtBody("Selam, mail içeriğini buraya yazdık.n");
$mailmime->setHTMLBody("Selam, html içeriğini buraya yazdık.");
$mailmime->addAttachment($file); // $file => dosyanın sunucudaki yolu

$mime_params = array (
‘text_encoding’ => ‘7bit’,
‘text_charset’ => ‘UTF-8’,
‘html_charset’ => ‘UTF-8’,
‘head_charset’ => ‘UTF-8’
);
$body = $mailmime->get($mime_params); // Türkçe maillerde sorun çıkmaması için

$headers = $mailmime->txtHeaders(array(‘From’ => ‘gonderenmailadresi@example.com’, ‘Subject’ => "AWS SES qeyfi", ‘Content-Type’ => ‘text/html; charset=UTF-8’));
$message = $headers . "rn" . $body;

$ses = new AmazonSES();
$result = $ses->send_raw_email(array(‘Data’ => base64_encode($message)), array(‘Destinations’ => ‘mailin_gidecegi_kisi@example.com’));

if ($result->isOK())
{
print("Mail gonderildi; id: " . (string) $result->body->SendRawEmailResult->MessageId . "n");
}else{
print("Mail gonderilemedi; Çünkü " . (string) $result->body->Error->Message . "n");
}
[/code]

Bir diğer yöntem şu gist‘teki gibi (denemedim). Ancak bu yöntem çok daha sade ve düzenli geliyor bana.Zaten Amazon blogunda da bu yöntem üzerinden anlatıyor.

İstanbul, İstanbul, Turkey

Sohbete katılın

2 yorum

  1. Merhaba Mustafa bey, amazon ses ile gönderim yapabileceğimz php mail kodunu tamamını paylaşma şansınız varmı acaba ? include edilecek safyalara erişlmiyorda.

    1. Merhaba, gist linki yanlis olmus duzelttim. Ordan lazim olan package’leri dahil edebilirsiniz. Kod zaten ornekteki gibi.

      Bu arada aws sdk’sini da dahil etmeyi unutmayin, composer.json sadece pear arsivini nasil dahil edecegimizi gostermek icindi 😉

Yorum Gönderin

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir