SendGrid API ile E-Posta Gönderimi
--
İhtiyaç
Geçtiğimiz günlerde yazdığım ufak bir betik içerisinde e-posta göndermem gerekti. İlk olarak müşterisi olduğum hosting sağlayıcımın e-posta hizmetine başvurdum. Nodemailer üzerinden art arda yaptığım birkaç test gönderiminin ardından hosting sağlayıcım tarafından bloklanınca alternatif çözümler aramaya giriştim.
SendGrid
Daha önce Github Pro içerisindeki araçları incelerken SendGrid gözüme çarpmıştı. Kısa bir araştırmayla derdime deva olacağını anladım. SendGrid, bir e-posta ve pazarlama hizmeti. İster sunduğu API, ister de SMTP üzerinden e-posta gönderebilmeye olanak tanıyor. E-posta gönderimi aslında marifetlerinin ilk adımı. Gönderdiği e-postaların detaylı raporlamaları (alıcısına ulaşma, açılma, tıklanma, spam olarak bildirilme oranları vb.), pazarlama otomasyon araçları, e-posta tasarım şablonları gibi hizmetleri var.
Kurulum
Kurulum için ilk olarak E-Mail API sayfasından API veya SMTP seçimi yapmak gerekiyor. Ben SMTP yapılandırmalarıyla uğraşmak istemediğim için API kullandım.
API’ın kullanılacağı dil seçildikten sonra ona uygun yapılandırma yönergeleri ve kod örnekleri paylaşılıyor. Yönergeler, API anahtarını saklamak için oluşturulacak ortam değişkenlerinden .gitignore kayıtlarına kadar her şeyi hazır etmenizi sağlıyor. Son olarak bir API anahtarı oluşturulup gönderici e-posta hesabı doğrulaması yapılarak kurulum tamamlanıyor.
Kullanım
Node.js ile kullanımı oldukça pratik. İlk olarak @sendgrid/mail
npm paketinin kurulması gerekiyor.
npm i @sendgrid/mail
Daha sonra oluşturulacak basit bir promise yapısıyla gönderim yapılıp sonucu kontrol edilebiliyor.
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY); // api anahtarı const msg = {
to: 'test@example.com', // alıcı hesap
from: 'test@example.com', // gönderici hesap
subject: 'Lorem ipsum dolor sit amet', // konu
text: 'Lorem ipsum dolor sit amet', // metin içeriği
html: '<p>Lorem ipsum dolor sit amet</p>',}; // html içeriğisgMail.send(msg).then(() => { // gönderim
console.log('E-posta gönderildi.');
}).catch(error => console.error(error));
Yapılan gönderimlerin ardından da rapor sayfaları birer birer oluşmaya başlıyor.
Ücretlendirme
Github Pro üzerinden kullanılan SendGrid hesaplarıyla aylık 15 bin adet e-posta gönderilebiliyor. Ücretsiz hesaplarda gönderim günlük 200 adetle sınırlandırılıyor. Benimki gibi küçük ihtiyaçlar için ücretsiz sürümü de gayet yeterli. Diğer ücretlendirme seçenekleri için ise web sitesindeki planlar ve sunulan hizmetler incelenebilir.
Kaynaklar
https://sendgrid.com/docs/for-developers/sending-email/api-getting-started/
https://sendgrid.com/docs/for-developers/sending-email/v3-nodejs-code-example/