无法使用pyramid_mailer和gmail发送邮件
我正在尝试通过我的Pyramid网站使用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
我哪里做错了?
谢谢!
2 个回答
2
邮件实际上是在交易完成之前不会被发送。
你应该完成这个交易:
import transaction
transaction.commit()
或者使用立即发送的选项:
mailer.send_immediately(message, fail_silently=False)
5
以下设置对我有效:
# pyramid_mailer
mail.host = smtp.gmail.com
mail.port = 587
mail.username = my.login@gmail.com
mail.password = mypassword
mail.tls = True
你的发送邮件的代码和我的差不多,所以应该可以用。
我没有尝试过SSL,但我猜那边可能会有各种各样的问题。