Skip to main content
 首页 » 编程设计

python之pyramid_mailer 不发送电子邮件

2025年05月04日30arxive

这里是 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()。