Node.js ve nodemailer kullanarak Direct Mail'in SMTP hizmeti üzerinden e-posta gönderin.
Önkoşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Direct Mail'i etkinleştirin ve Direct Mail konsolunda bir SMTP hesabı oluşturun
Gönderen adresinizi doğrulayın — kodunuzdaki
fromalanı, doğrulanmış gönderen adresiyle eşleşmelidir; aksi takdirde mesaj reddedilirKonsoldan aldığınız SMTP kullanıcı adı ve şifreniz
nodemailer yükleyin
npm install nodemailer --save
E-posta gönderin
Aşağıdaki örnek, SMTP kimlik bilgilerini depolamak için ortam değişkenlerini kullanır.
Kimlik bilgilerinizi ortam değişkenleri olarak ayarlayın:
export SMTP_USER="username@userdomain"
export SMTP_PASS="your-smtp-password"
const nodemailer = require('nodemailer');
// Create a reusable transporter. You only need to create this once.
const transporter = nodemailer.createTransport({
host: 'smtpdm.aliyun.com',
port: 25,
secure: true, // use SSL
auth: {
user: process.env.SMTP_USER, // your Direct Mail SMTP username
pass: process.env.SMTP_PASS // your Direct Mail SMTP password
}
});
const mailOptions = {
from: 'NickName<username@userdomain>', // sender address — must match your verified sender address
to: 'x@x.com, xx@xx.com', // recipients (comma-separated)
cc: 'haha<xxx@xxx.com>', // CC recipients
bcc: 'haha<xxxx@xxxx.com>', // BCC recipients
subject: 'Hello',
text: 'Hello world', // plain text body
html: '<b>Hello world</b><img src="cid:01" style="width:200px;height:auto">', // HTML body
attachments: [
{
filename: 'text0.txt',
content: 'hello world!'
},
{
filename: 'text1.txt',
path: './app.js'
},
{
filename: 'test.JPG',
path: './Desert.jpg',
cid: '01' // content ID referenced in HTML body
}
]
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.error(error);
}
console.log('Message sent:', info.response);
});
Önemli
from alanı, Direct Mail hesabınızda doğrulanan gönderen adresiyle eşleşmelidir. Eşleşmeme durumları, gönderim sırasında kimlik doğrulama hatalarına neden olur.