无法使用pyramid_mailer和gmail发送电子邮件

时间:2011-07-23 08:12:18

标签: python smtp 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 个答案:

答案 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)