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


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

برای استفاده از سرویس ایمیل در برنامه‌های NodeJS، می‌توانید از پکیج nodemailer استفاده کنید که بایستی با دستور زیر، آن را در پروژه خود، نصب کنید:
کپی
npm install nodemailer
پس از آن، کافیست تا طبق مستندات SMTP، یک دسترسی SMTP و طبق مستندات افزودن نشانی، یک نشانی برای ایمیل‌سرور خود، ایجاد کنید. در نهایت نیز، بایستی اطلاعات مربوط به ایمیل‌سرور خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:
کپی
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=465
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: true, 
    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 باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.