from datetime import datetime as dt, timedelta, date
from django.conf import settings
from django.core.mail import send_mail
from django.core.mail import EmailMultiAlternatives
from django.core.management.base import BaseCommand, CommandError
from hive.apps.accounts.sms_utils import send_sms_twilio
to_email = ['admin@domain.com']
subject = 'Your subject here'
email_body = 'The following clients are currently eligible for Test.Please contact them .<br>'
msg = EmailMultiAlternatives(subject, '', settings.DEFAULT_FROM_EMAIL, to_email)
msg.attach_alternative(email_body, "text/html")
msg.send()
当我使用AWS instance.i在centos上运行此代码时出现以下错误
BotoServerError: 400 Bad Request
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<Error>
<Type>Sender</Type>
<Code>RequestExpired</Code>
<Message>Request timestamp: Wed, 01 Oct 2014 07:35:22 GMT expired. It must be within 300 secs/ of server time.</Message>
</Error>
<RequestId>c79a9723-493c-11e4-b2d8-51a7cb197196</RequestId>
</ErrorResponse>
当它在另一个AWS实例上工作时。
我已经测试了以下可能性。
答案 0 :(得分:1)
该错误表示您的服务器时间未与亚马逊服务器的时间同步...
您可以通过运行以下方式检查亚马逊服务器的时间:
wget -S "https://email.us-east-1.amazonaws.com"
在返回的消息中查找时间戳。用适当的区域端点替换us-east-1。
将其与您系统的时间进行比较......
如果您需要NTP服务器,可以使用:
0.amazon.pool.ntp.org
1.amazon.pool.ntp.org
2.amazon.pool.ntp.org
3.amazon.pool.ntp.org
如果这是在您自己的某个Amazon VPC中,您可以在VPC上设置一个DHCP选项,并指定这些ntp服务器。如果您的服务器仍然无法同步,请确保您没有安全组阻止ntp(UDP 123)。
答案 1 :(得分:0)
在我的情况下,我的Ubuntu服务器与SES后端不同步,并向我返回了相同的消息。要解决它:
wget -S "https://email.eu-west-1.amazonaws.com"
根据您的电子邮件端点更改链接。使用date
如果它们与sudo apt-get install ntp
最后同步您的服务器时间:
sudo service ntp stop
sudo ntpdate -s time.nist.gov
sudo service ntp start