这里是 Pyramid 的新手,并尝试设置 pyramid_mailer 向我自己发送电子邮件:
我在 development.ini 中有:
mail.host = smtp.gmail.com
mail.username = EMAIL@gmail.com
mail.password = PASSWORD
mail.port = 587
mail.ssl = True
[handlers]
keys = console
在我的项目/__init__.py中:
config.include('pyramid_mailer')
在我的项目/views.py
from pyramid_mailer.mailer import Mailer
from pyramid_mailer import get_mailer
from pyramid_mailer.message import Message
@view_config(renderer="templates/site_view.pt") def site_view(self):
...
config.registry['mailer'] = Mailer.from_settings(settings)
mailer = request.registry['mailer']
message = Message(subject="It works!",
sender="EMAIL@gmail.cm",
recipients=["EMAIL@gmail.com"],
body="Hey there!")
mailer.send(message)
我是否遗漏了一些非常基本的东西?
请您参考如下方法:
事实上,您缺少一些基本的东西! :-)
.send() 是一个延迟发送,它将消息添加到事务管理器。如果您没有使用 pyramid_tm,那么邮件将不会在请求结束时发送。事务性电子邮件很好,因为如果在调用 send() 后代码中出现异常,邮件将不会发送。
无论如何,发送代码的方法是通过.send_immediately()。
