我正在尝试使用我的gmail smtp和pyramid_mailer包从我的金字塔网站发送电子邮件。首先,如果有人对电子邮件解决方案有其他建议,请告诉我!
我在dev.ini中添加了以下内容:
mail.host = smtp.gmail.com
mail.username = user@gmail.com
mail.password = password
mail.port = 465
mail.ssl = True
然后我就像这样发送消息:
config.registry['mailer'] = Mailer.from_settings(settings)
以后......
mailer = request.registry['mailer']
message = Message(subject="hello world",
sender="admin@mysite.com",
recipients=["someaddress@gmail.com"],
body="hello!")
mailer.send(message)
不幸的是,我得到以下异常:
SMTPServerDisconnected: please run connect() first
我做错了什么?
谢谢!
答案 0 :(得分:4)
以下设置对我有用:
# pyramid_mailer
mail.host = smtp.gmail.com
mail.port = 587
mail.username = my.login@gmail.com
mail.password = mypassword
mail.tls = True
您的邮件发送代码似乎与我的相同,因此应该有效。
我没有尝试使用SSL,但我假设各种各样的bugaboos都可能存在。
答案 1 :(得分:2)
在提交交易之前,实际上并未发送电子邮件。
您应该提交交易:
import transaction
transaction.commit()
或使用send_immediately:
mailer.send_immediately(message, fail_silently=False)