新来的金字塔,并试图设置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__. my中:
config.include('pyramid_mailer')在我的项目/视图中
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")
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)我是不是错过了一些最基本的东西?
发布于 2012-06-20 20:34:15
事实上,你错过了一些基本的东西!:-)
.send()是一种延迟发送,它将消息添加到事务管理器。如果您不使用pyramid_tm,则不会在请求结束时发送邮件。事务性电子邮件很好,因为如果在调用send()后在代码中引发异常,则不会发送邮件。
无论如何,让您的代码发送的方式是通过.send_immediately()。
发布于 2012-06-23 13:17:14
您可能需要检查它并使用:
mail.tls = TrueCan't send emails with pyramid_mailer and gmail
您还可以使用.send_immediately(message, fail_silently=False)
你会得到这样的东西:
mail.host = smtp.gmail.com
mail.username = EMAIL@gmail.com
mail.password = PASSWORD
mail.port = 587
mail.tls = True在您的设置中:
config.include('pyramid_mailer')然后
mailer = get_mailer(request)
message = Message(subject="It works!",
sender="EMAIL@gmail.cm",
recipients=["EMAIL@gmail.com"],
body="Hey there!")
mailer.send_immediately(message, fail_silently=False)如果仍然没有工作,则可以使用
mail.debug =真
它应该将smtp会话转储到stdout中。如果有什么不管用的话。你会知道原因的。如果一切顺利的话。
https://stackoverflow.com/questions/11127706
复制相似问题