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

如何使用AWS Lambda函数定时发送早安自动化邮件?

用AWS Lambda实现每日定时发送早安邮件

你的代码已经实现了核心的邮件发送逻辑,基于AWS SES服务发送文本邮件,以下是完成整个项目还需要的配置步骤和注意事项:

核心代码

// index.mjs
import AWS from 'aws-sdk';

const ses = new AWS.SES({ region: 'us-east-1' });

export async function handler(event, context) {
    const params = {
        Destination: {
            ToAddresses: ['djdand4@gmail.com'],
        },
        Message: {
            Body: {
                Text: { Data: 'Good morning!' },
            },
            Subject: { Data: 'Good Morning Greeting' },
        },
        Source: 'danielcohen.4c@gmail.com',
    };

    try {
        await ses.sendEmail(params).promise();
        console.log('Email sent successfully');
        return { statusCode: 200, body: 'Email sent successfully' };
    } catch (err) {
        console.error('Error sending email:', err);
        return { statusCode: 500, body: 'Error sending email' };
    }
}

后续必做配置

  1. 验证SES邮箱地址
    • 登录AWS SES控制台,进入「已验证的身份」页面,分别添加并验证代码中的Source发件邮箱和ToAddresses收件邮箱(沙箱模式下仅支持发送到已验证邮箱)。
  2. 配置Lambda权限
    • 给Lambda函数附加包含SES发送权限的IAM策略,示例策略如下:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "ses:SendEmail",
                  "Resource": "*"
              }
          ]
      }
      
    • 生产环境建议使用自定义最小权限策略,避免过度授权。
  3. 设置每日定时触发
    • 打开AWS EventBridge控制台,创建新规则:
      • 规则类型选择「计划」,设置计划表达式(比如cron(0 8 * * ? *)表示UTC时间每日8点触发,需根据本地时区调整)。
      • 目标选择你的Lambda函数,完成规则创建。
  4. 替换邮箱地址
    • 将代码中ToAddresses和Source字段的示例邮箱替换为实际要使用的已验证邮箱。

关键注意事项

  • 区域一致性:确保Lambda和SES使用同一区域(代码中指定了us-east-1),跨区域调用可能引发权限或延迟问题。
  • SES沙箱限制:新账号默认处于沙箱模式,无法发送到未验证邮箱,若需发送给任意收件人,需提交退出沙箱的申请。
  • 日志排查:如果邮件发送失败,查看Lambda对应的CloudWatch日志,重点检查权限错误、邮箱验证状态、SES发送配额等信息。

内容的提问来源于stack exchange,提问作者Daniel Cohen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:07:14