Merhabalar bu yazımızda Nodejs ile SMTP üzerinden mail gönderme inceleyeceğiz. Nodejs ile mail göndermek için kullanacağımız npm modüller nodemailer, nodemailer-smtp-transport, handlebars, fs'dir. Mail için kullanılacak temamızıda html sayfası ile okuyup mail güzel bir şekilde gönderim yapmamız mümkün olacaktır.
Öncelik olarak npm modüllerimizi nodejs modul kısmına yüklememiz gerekmektedir. Aşağıdaki npm araçılığı ile terminal üzerinden kodlar modülleri yükleyebilirsiniz.
Terminal
npm modül yükleme
# Tek seferde yükleme yapmak için
npm install nodemailer nodemailer-smtp-transport handlebars --save
# Her modülü ayrı ayrı yüklemek için
npm install nodemailer --save
npm install nodemailer-smtp-transport --save
npm install handlebars --save
# Komutlarını kullanabilirsiniz.
NPM modullerimizi başarılı bir şekilde kurduktan sonra artık kodlama kısmına gelebiliriz.
NodeJS
smtp_mail_gonderme.js
// Javascript dosyamıza modulleri cağıralım
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
var handlebars = require('handlebars');
var fs = require('fs');
// nodemailer ayarlarını yapalım ben mail gönderimi için yandex kullanıyorum siz kendi mail sunucunuzu kullanabilirsiniz.
smtpTransport = nodemailer.createTransport(smtpTransport({
host: 'smtp.yandex.ru',
secure: true,
port: 465,
auth: {
user: 'e posta',
pass: 'şifre'
}
}));
// Mail görsel olarak daha iyi hazırlamak için html sayfasını okuyacağız
fs.readFile(__dirname + '/email_templates.html', 'utf8', function(err, html) {
var template = handlebars.compile(html);
var replacements = {
"{$adi}": 'sonsuzkaynak' // html içinde bulunan adi bölümüne sonsuzkaynak olarak değiştiriyoruz.
};
var htmlToSend = template(replacements);
// Mail göndermek için ayarları yapıyoruz
var mailOptions = {
from: 'Kimin Gönderdiği',
to: 'Gönderilecek Kişi',
subject: 'Mail Başlığı',
html: htmlToSend
};
// Bu sıkısma mail göndermek için smtpTransport modulünü kullanmaktayız.
smtpTransport.sendMail(mailOptions, function (error, info) {
if (error) {
// Mail gönderimi sırasında sorun oluşursa sorunu terminal ekranına yazdırıyoruz.
return console.log(error);
}
// Terminal ekranına mail sunucusunda gelen mesajı yazdırıyoruz
console.log("Message sent " + info.response);
});
});
NodeJS ile smtp üzerinden mail gönderimi için javascript dosyamızı oluşturduk. Nodejs server ile oluşturduğumuz javascript dosyasını çalıştırıp kontrol edebiliriz.
Kurduğum onca mail serverlar sonucunda ücretiz olarak en stabil şekilde ve kolay yönetilebilirlik konusunda Zimba Mail Server gönlümde taht kurdu. Centos 7 üzerine Zimbra 8.8.15 nasıl kurulacağını anlatacağım