-
ライブラリのインストール: まず、Node.jsのプロジェクトでメール送信を行うために、適切なメール送信ライブラリをインストールします。一般的な選択肢としては、NodemailerやSendGridなどがあります。選んだライブラリのドキュメントに従って、必要な手順を実行してください。
-
Promise.allを使用したメールの送信: 以下の例では、Nodemailerライブラリを使用してメールを送信する方法を示します。
const nodemailer = require('nodemailer');
// メール送信関数
function sendEmail(recipient, subject, message) {
return new Promise((resolve, reject) => {
// Nodemailerの設定
const transporter = nodemailer.createTransport({
// 送信元のSMTPサーバーの設定
service: 'Gmail',
auth: {
user: '[email protected]',
pass: 'your-password'
}
});
// 送信するメールの内容
const mailOptions = {
from: '[email protected]',
to: recipient,
subject: subject,
text: message
};
// メールの送信
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
reject(error);
} else {
resolve(info);
}
});
});
}
// メール送信の例
const recipients = ['[email protected]', '[email protected]', '[email protected]'];
const subject = '重要なお知らせ';
const message = 'こんにちは、これは重要なお知らせです。';
// Promise.allを使用して、すべてのメールの送信を非同期に実行
Promise.all(recipients.map(recipient => sendEmail(recipient, subject, message)))
.then(results => {
console.log('メールが正常に送信されました。', results);
})
.catch(error => {
console.error('メールの送信中にエラーが発生しました。', error);
});
上記のコードでは、sendEmail
関数に受信者のメールアドレス、件名、メッセージを渡してメールを送信します。Promise.all
メソッドを使用して、複数のsendEmail
関数を非同期に呼び出し、すべてのメールの送信が完了するのを待ちます。成功した場合は、結果が配列として返されます。
このようにPromise.allを使用することで、複数の非同期タスクを同時に実行し、結果をまとめて処理することができます。メール送信の例では、複数の受信者に対して一斉にメールを送信するためにPromise.allを使用しています。