اتصال به ایمیل‌سرور در برنامه‌های NodeJS


پروژه و کدهای مورد استفاده در ویدیوی فوق در اینجا قابل مشاهده و دسترسی هستند.

برای استفاده از سرویس ایمیل در برنامه‌های NodeJS، می‌توانید از پکیج nodemailer استفاده کنید که بایستی با دستور زیر، آن را در پروژه خود، نصب کنید:

کپی
npm install nodemailer

پس از آن، کافیست تا طبق مستندات SMTP، یک دسترسی SMTP و طبق مستندات افزودن نشانی، یک نشانی برای ایمیل‌سرور خود، ایجاد کنید. در نهایت نیز، بایستی اطلاعات مربوط به ایمیل‌سرور خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:

کپی
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=587
MAIL_USER=sweet_brattain_hrt81t
MAIL_PASSWORD=4eba6d6d-96f4-6d04-b055-705031ba525d
MAIL_FROM=info@example.com

در نهایت می‌توانید در پروژه‌ی خود مانند مثال زیر عمل کرده و با استفاده از دسترسی SMTP سرویس ایمیل لیارا، اقدام به ارسال ایمیل‌های تراکنشی کنید:

کپی
// Import required packages
const nodemailer = require('nodemailer');
const dotenv = require('dotenv'); // in local, run `npm install dotenv` if needed

// Load environment variables from .env file
dotenv.config();

// Create reusable transporter object using the SMTP transport
const transporter = nodemailer.createTransport({
    host: process.env.MAIL_HOST,
    port: process.env.MAIL_PORT,
    secure: false, // true for 465, false for other ports (587 in this case for STARTTLS)
    auth: {
        user: process.env.MAIL_USER,
        pass: process.env.MAIL_PASSWORD
    },

});

// Email options
const mailOptions = {
    from: `"my app" <${process.env.MAIL_FROM}>`, // Sender address
    to: 'test@example.com', // List of receivers
    subject: 'Test Email', // Subject line
    text: 'This is a test email sent from Node.js', // Plain text body
    html: '<b>This is a test email sent from Node.js</b>', // HTML body
    headers: {
      "x-liara-tag": "test_email", // Tags 
    },
};

// Send email
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log('Error occurred: ' + error.message);
    }
    console.log('Email sent: ' + info.response);
});

فیلد from باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.

طبق مستندات nodemailer، این ماژول به صورت پیش‌فرض ایمیل‌ها را به صورت امن و رمزنگاری شده، ارسال می‌کند و نیازی نیست که شما، کار خاصی را انجام دهید.

برای ارسال امن‌تر ایمیل‌ها، می‌توانید مقدار Port را بر روی 465 و مقدار فیلد secure را برابر با true تنظیم کنید. با این کار، از TLS استفاده خواهید کرد.