Express.js ile E-posta Gönderimi Nasıl Yapılır?

Express.js ile E-posta Gönderimi Nasıl Yapılır?


Günümüz dijital dünyasında, e-posta ile iletişim kurmak her zamankinden daha önemli hale geldi. Web uygulamalarında kullanıcılarla iletişim kurmanın yanı sıra, bildirimler, kullanıcı onayları veya pazarlama amaçlı e-postalar göndermek için de kullanılır. Bu makalede, Express.js kullanarak bir Node.js uygulamasında e-posta göndermenin temel yollarını öğreneceksiniz.

Node.js ve Express.js ile E-posta Göndermeye Giriş

Node.js, sunucu tarafında JavaScript kodu çalıştırmak için kullanılan popüler bir platformdur. Express.js ise, Node.js üzerinde çalışan ve web uygulamaları geliştirmeyi kolaylaştıran bir framework'tür. E-posta gönderimi için genellikle nodemailer kütüphanesi kullanılır. Bu kütüphane, SMTP (Simple Mail Transfer Protocol) protokolü üzerinden e-posta gönderimini basit bir şekilde gerçekleştirmenizi sağlar.

Nodemailer Kütüphanesini Kurma

Öncelikle, projenizde nodemailer kütüphanesini kurmanız gerekiyor. Aşağıdaki komutu terminalde çalıştırarak bu işlemi gerçekleştirebilirsiniz:

npm install nodemailer

E-posta Gönderen Bir Uygulama Oluşturma

Aşağıda, Express.js ile bir e-posta gönderme işlemini basit bir şekilde yapan örnek bir uygulama bulunmaktadır:

const express = require('express');
const nodemailer = require('nodemailer');

const app = express();
const PORT = process.env.PORT || 3000;

// E-posta gönderim ayarları
let transporter = nodemailer.createTransport({
    host: 'smtp.example.com',
    port: 587,
    secure: false, // true for 465, false for other ports
    auth: {
        user: 'your-email@example.com', // Gmail'de OAUTH2 kullanmıyorsanız e-posta adresiniz
        pass: 'your-password', // E-posta şifreniz
    },
});

app.get('/send-email', (req, res) => {
    let mailOptions = {
        from: 'sender@example.com', // Gönderen e-posta adresi
        to: 'recipient@example.com', // Alıcı e-posta adresi
        subject: 'Test E-postası', // E-posta konusu
        text: 'Merhaba, bu bir test e-postasıdır!', // E-posta içeriği
    };

    transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            return res.status(500).send(error.toString());
        }
        res.status(200).send('E-posta gönderildi: ' + info.response);
    });
});

app.listen(PORT, () => {
    console.log(`Server ${PORT} portunda çalışıyor.`);
});

Yukarıdaki kod, bir Express.js sunucusu kurar ve belirli bir URL yoluna /send-email GET isteği yapıldığında bir e-posta gönderir. createTransport fonksiyonu ile e-posta sunucusu yapılandırması yapılır. Uygulamayı çalıştırdığınızda, belirtilen URL'ye bir GET isteği gönderdiğinizde e-postanın gönderileceğini göreceksiniz.

Sonuç

Express.js ile e-posta göndermek, kullanıcılarınızla etkileşim kurmanın etkili bir yoludur. nodemailer kütüphanesini kullanarak çok çeşitli e-posta senaryolarını gerçekleştirebilir ve uygulamanızı daha etkileşimli hale getirebilirsiniz. Uygulamanızda e-postayla ilgili tüm yapılandırmaları doğru bir şekilde yapmayı unutmayın ve kullanım kısıtlamalarını kontrol edin. E-posta gönderimiyle ilgili daha fazla bilgi için resmi Nodemailer belgesine göz atabilirsiniz.