You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:45:28