SendGrid API ile E-Posta Gönderimi

Tuğsan Ünlü
2 min readMay 16, 2020
SendGrid

İ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.

Dil seçimi

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ği
sgMail.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.

Gönderim raporları

Ü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/

--

--