问题描述: 当使用smtplib发送邮件时,Amazon SES凭证是有效的,但当使用boto3库发送邮件时,凭证无效。
解决方法:
确保您在使用boto3之前已经正确设置了AWS凭证,包括访问密钥和访问密钥ID。可以使用AWS CLI或在代码中设置这些凭证。
确保您在使用boto3发送邮件时,已经正确设置了AWS区域。您可以在创建boto3 SES客户端时指定区域,例如:
import boto3
# 设置AWS凭证
session = boto3.Session(aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY')
# 创建SES客户端
client = session.client('ses', region_name='us-west-2') # 替换为您的区域
# 发送邮件
response = client.send_email(
Source='sender@example.com',
Destination={
'ToAddresses': ['recipient@example.com'],
},
Message={
'Subject': {
'Data': 'Hello, World!',
},
'Body': {
'Text': {
'Data': 'This is the body of the email',
},
},
},
)
请确保将'YOUR_ACCESS_KEY', 'YOUR_SECRET_KEY'和'region_name'替换为您的实际值。
检查您的Amazon SES账户是否已经被验证。如果您的账户未经验证,您将无法使用boto3发送邮件。您可以在Amazon SES控制台中验证您的账户。
如果您仍然遇到问题,请检查Amazon SES的权限。确保您的访问密钥具有发送邮件的权限。您可以在AWS IAM控制台中为您的访问密钥添加适当的SES权限。
使用上述方法,您应该能够在使用boto3时成功发送电子邮件。