在使用AWS SES Boto3发送电子邮件时出现'请求签名不匹配”错误可能是由于密钥和凭证不匹配所致。这可以通过使用正确的AWS密钥和访问凭据来解决。以下是示例代码:
import boto3
from botocore.exceptions import ClientError
# AWS access keys and secret access key
AWS_ACCESS_KEY_ID = 'YOUR_AWS_ACCESS_KEY_ID'
AWS_SECRET_ACCESS_KEY = 'YOUR_AWS_SECRET_ACCESS_KEY'
AWS_REGION = 'YOUR_AWS_REGION'
def send_email(recipient, subject, body):
client = boto3.client('ses',
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name=AWS_REGION)
try:
response = client.send_email(
Destination={
'ToAddresses': [recipient],
},
Message={
'Body': {
'Text': {
'Charset': 'UTF-8',
'Data': body,
},
},
'Subject': {
'Charset': 'UTF-8',
'Data': subject,
},
},
Source='YOUR_FROM_EMAIL_ADDRESS',
)
except ClientError as e:
print(e.response['Error']['Message'])
else:
print("Email sent! Message ID:"),
print(response['MessageId'])
在上面的代码中,将AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY替换为您的AWS访问凭证。确保将YOUR_FROM_EMAIL_ADDRESS替换为您的发件人电子邮件地址,并为AWS_REGION提供您的地理区域。
如果这仍然不起作用,您可以尝试在发送电子邮件时附加时间戳和nonce来解决问题。
上一篇:AWSSES并非立即发送邮件。
下一篇:AWSSES不会立即发送电子邮件