概要
Javascriptで AWS SES を使ってメールを送信したい場合はメールクライアントとして nodemailer がおすすめです。
AWS SESが提供するAPIでメール送信に画像などを添付したいと思ったら MIMEフォーマットの文字列を自分で組み立てないといけませんが nodemailerを使えばそれらの煩雑な作業なしにメール送信ができます。
通常のメール送信
let nodemailer = require("nodemailer");
let aws = require("@aws-sdk/client-ses");
process.env.AWS_ACCESS_KEY_ID = "AWS_ACCESS_KEY_ID";
process.env.AWS_SECRET_ACCESS_KEY = "AWS_SECRET_ACCESS_KEY";
const ses = new aws.SES({
region: "ap-northeast-1"
});
let transporter = nodemailer.createTransport({
SES: { ses, aws },
});
transporter.sendMail(
{
from: "sender@example.com",
to: "recipient@example.com",
subject: "Message",
text: "I am a cat. As yet I have no name.",
},
(err, info) => {
console.log(info.envelope);
console.log(info.messageId);
}
);
複数のアドレスに送信する
sendMail
の to
パラメータに送信先のアドレスを配列で渡す。
transporter.sendMail({
//...
to: ["recipient1@example.com", "recipient2@example.com"]
//...
})
メールにファイルを添付する
attachments
パラメータを使うと簡単にファイルを添付できます。
transporter.sendMail({
//...
attachments: [
{ filename: 'text1.txt', path: './text1.txt' },
{ filename: 'text2.txt', content: Buffer.from('I am a cat. As yet I have no name.', 'utf-8') }
]
})