如果AWS SES SMTP可以成功发送邮件,但AWS SES API无法发送邮件,可能是由于以下原因之一:
邮件发送限制:AWS SES有一些限制,例如每秒发送速率,每天发送配额等。如果超过了这些限制,API请求将失败。您可以查看AWS SES控制台以了解详细的限制信息。
权限问题:确保您的AWS API密钥具有发送邮件的权限。您可以在AWS Identity and Access Management(IAM)中检查您的密钥的权限设置。
请求参数问题:检查您的API请求中的参数是否正确。确保您提供了正确的源地址、目标地址和消息内容等。
以下是一个示例代码,用于使用AWS SES API发送邮件:
import boto3
# 创建SES客户端
client = boto3.client('ses', region_name='us-west-2') # 根据您的实际区域进行更改
# 发送邮件
response = client.send_email(
Source='sender@example.com', # 发件人邮箱
Destination={
'ToAddresses': ['recipient@example.com'] # 收件人邮箱
},
Message={
'Subject': {
'Data': 'Hello, SES API!', # 邮件主题
'Charset': 'UTF-8'
},
'Body': {
'Text': {
'Data': 'This is a test email sent via AWS SES API.', # 邮件正文
'Charset': 'UTF-8'
}
}
}
)
print(response)
如果您仍然无法解决问题,建议您查看AWS SES的错误日志,以获得更多详细的错误信息。您可以在AWS SES控制台的“邮件发送”部分查看错误日志。