Не могу отправлять электронные письма с pyramid_mailer и gmail - PullRequest
3 голосов
/ 23 июля 2011

Я пытаюсь отправлять электронные письма с моего сайта-пирамиды с помощью моего 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 ]

4 голосов
/ 26 июля 2011

У меня работали следующие настройки:

# pyramid_mailer
mail.host = smtp.gmail.com
mail.port = 587
mail.username = my.login@gmail.com
mail.password = mypassword
mail.tls = True

Ваш код отправки почты, похоже, совпадает с моим, поэтому он должен работать.

Я не пробовал SSL, но я предполагаю, что в это время могут существовать всевозможные ошибки.

2 голосов
/ 25 апреля 2012

Письмо фактически не отправляется, пока транзакция не будет подтверждена.

Вы должны зафиксировать транзакцию:

import transaction
transaction.commit()

или использовать send_immediately:

mailer.send_immediately(message, fail_silently=False)
...