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

使用AWS SDK发邮件遇无效安全令牌:仅用AccessKey和SecretKey可行吗?

问题解答

仅使用长期的AccessKey和SecretKey是可以发送AWS SES邮件的,不需要额外生成临时安全令牌。你遇到的The security token included in the request is invalid.错误,通常不是因为缺少令牌,而是以下几个常见原因导致:

  • 密钥配置错误:检查你的AccessKey ID和SecretAccessKey是否输入正确,注意不要包含多余空格或特殊字符,严格区分大小写。
  • 密钥权限不足:确保对应的IAM用户拥有SES发送邮件的权限,比如附加AmazonSESFullAccess策略(或更精细的自定义策略,允许ses:SendEmail/ses:SendRawEmail操作)。
  • 区域不匹配:确认AWS SDK配置的区域和你启用SES服务的区域一致(SES仅在部分区域可用,比如us-east-1、eu-west-1等)。
  • 密钥状态异常:登录AWS控制台,检查该IAM用户的密钥是否处于启用状态,是否未过期。

这里提供一个正确使用长期密钥的C#示例:

using Amazon.SimpleEmail;
using Amazon.SimpleEmail.Model;
using System.Collections.Generic;
using System.Threading.Tasks;

class SesSender
{
    static async Task Main()
    {
        // 替换为你的密钥和目标区域
        var client = new AmazonSimpleEmailServiceClient("你的AccessKeyID", "你的SecretAccessKey", Amazon.RegionEndpoint.USEast1);
        
        var sendRequest = new SendEmailRequest
        {
            Source = "sender@example.com",
            Destination = new Destination { ToAddresses = new List<string> { "recipient@example.com" } },
            Message = new Message
            {
                Subject = new Content("SES测试邮件"),
                Body = new Body { Text = new Content("这是通过AWS SES发送的测试内容") }
            }
        };

        await client.SendEmailAsync(sendRequest);
    }
}

如果以上配置都没问题,还可以用AWS CLI验证密钥有效性,执行以下命令(替换对应参数):

aws ses send-email --from sender@example.com --to recipient@example.com --subject "CLI测试" --text "测试内容" --region us-east-1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 03:38:10