如何使用import语句结合Nodemailer与AWS SES发送邮件
使用ES模块(import语法)结合Nodemailer与AWS SES
要把Nodemailer结合AWS SES的CommonJS代码改成ES模块写法,只需替换require语句为对应的import语法,同时确保项目支持ES模块:
1. 配置项目支持ES模块
在项目根目录的package.json中添加以下配置:
{ "type": "module" }
2. ES模块写法的完整代码示例
// 导入Nodemailer核心模块 import nodemailer from 'nodemailer'; // 导入AWS SES客户端 import { SESClient } from '@aws-sdk/client-ses'; // 初始化AWS SES客户端 const sesClient = new SESClient({ region: 'us-east-1', // 替换为你的AWS区域,比如 'eu-west-1' // 若已配置AWS环境变量或本地凭证文件,可省略credentials字段 credentials: { accessKeyId: 'YOUR_AWS_ACCESS_KEY_ID', secretAccessKey: 'YOUR_AWS_SECRET_ACCESS_KEY' } }); // 创建Nodemailer传输器,关联SES客户端 const transporter = nodemailer.createTransport({ SES: { ses: sesClient, aws: { SES: SESClient } } }); // 异步发送邮件的示例函数 async function sendTestEmail() { try { const sendResult = await transporter.sendMail({ from: '发件人 <your-email@example.com>', to: '收件人 <recipient@example.com>', subject: 'ES模块语法测试邮件', text: '这是通过ES模块+Nodemailer+AWS SES发送的纯文本邮件', html: '<h2>测试邮件</h2><p>这是通过ES模块+Nodemailer+AWS SES发送的HTML邮件</p>' }); console.log('邮件发送成功,消息ID:', sendResult.messageId); } catch (err) { console.error('邮件发送失败:', err); } } // 执行发送函数 sendTestEmail();
注意事项
- 如果你的应用部署在AWS服务(如EC2、Lambda)上,或者本地已配置AWS CLI凭证,无需手动填写
credentials,AWS SDK会自动从环境或凭证文件中读取。 - 确保已安装依赖包:
npm install nodemailer @aws-sdk/client-ses
内容的提问来源于stack exchange,提问作者philippe_b
相关产品推荐
相关产品推荐

