Merhabalar, bu makalemde Node.js kullanarak SMTP üzerinden nasıl e-posta gönderebileceğinizi anlatacağım. Bu bilgileri, kullanıcılarınıza e-posta bildirimi göndermek, parola sıfırlama linki yollamak, uygulama hatalarını raporlamak gibi durumlarda kullanabilirsiniz. Makale sonunda bu bilgileri kullanarak basit bir e-posta gönderme örneğine de ulaşabilirsiniz.

Hangi Projelerde Kullanılabilir?

Bu makalede anlattığım bilgileri kullanarak e-ticaret siteleri, sosyal medya platformları, bloglar veya herhangi bir web uygulamasında e-posta gönderme işlemi yapabilirsiniz.

Node.js ve Nodemailer Kütüphanesi

Node.js ile SMTP üzerinden mail gönderimi yapmak için “Nodemailer” kütüphanesini kullanıyoruz. Nodemailer, kolay kullanımı ve geniş özellik yelpazesi ile bilinen bir kütüphanedir.

Kullanmaya başlamadan önce kütüphaneyi projenize eklemeniz gerekmektedir. Aşağıdaki komutu terminal veya komut satırında çalıştırarak Nodemailer’ı projenize ekleyebilirsiniz.

npm install nodemailer

Nodemailer ile SMTP Mail Gönderme

Nodemailer ile mail gönderimi yapabilmek için aşağıdaki gibi bir JavaScript kodu kullanabiliriz:

const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
  host: "smtp.mailtrap.io",
  port: 2525,
  auth: {
    user: "kullaniciadi",
    pass: "sifre"
  }
});

const mailOptions = {
  from: '"Blog Sahibi" ',
  to: "[email protected]",
  subject: "Node.js ile SMTP Mail Gönderme",
  text: "Node.js ve Nodemailer kullanarak SMTP üzerinden mail gönderimi hakkında bilgi edindiniz."
};

transporter.sendMail(mailOptions, function(err, info) {
  if(err) {
    console.log(err);
  } else {
    console.log("E-posta gönderildi: " + info.response);
  }
});

Yukarıdaki kodu kendi bilgilerinizle doldurarak kullanabilirsiniz. SMTP sunucu bilgileri olarak kullandığımız host ve port bilgilerini ve SMTP kullanıcı bilgilerini kendi sunucunuzun bilgileri ile değiştirmeniz gerekiyor. E-posta bilgileri olarak tanımlanan mailOptions objesini ise göndermek istediğiniz e-posta içeriğine göre düzenlemelisiniz.

sendMail fonksiyonu, e-postanın başarılı bir şekilde gönderilip gönderilmediğini kontrol eder. Eğer bir hata oluşursa, bu hatayı konsola yazar. Eğer hata oluşmazsa, e-postanın başarıyla gönderildiğini bildirir.

Popüler mail servislerini SMTP bilgileri aşağıdaki gibidir.

Gmail

SMTP sunucu adresi: smtp.gmail.com
SMTP kullanıcı adı: Gmail e-posta adresiniz (örneğin, [email protected])
SMTP parola: Gmail parolanız
SMTP port (TLS): 587
SMTP port (SSL): 465
SMTP TLS/SSL gereklidir: evet

Hotmail/Outlook

SMTP sunucu adresi: smtp.live.com
SMTP kullanıcı adı: Hotmail/Outlook e-posta adresiniz (örneğin, [email protected] veya [email protected])
SMTP parola: Hotmail/Outlook parolanız
SMTP port (TLS): 587
SMTP TLS/SSL gereklidir: evet

Yandex Mail

SMTP sunucu adresi: smtp.yandex.com
SMTP kullanıcı adı: Yandex Mail e-posta adresiniz (örneğin, [email protected])
SMTP parola: Yandex Mail parolanız
SMTP port (SSL): 465
SMTP TLS/SSL gereklidir: evet

Detaylı bilgi için:

https://nodemailer.com/about/
https://nodemailer.com/smtp/