2013-02-19 3 views
0

До миграции моего приложения на GAE, я использую следующий код для отправки сообщения электронной почты, и она работала очень хорошо:Отправить по электронной почте на GAE, используя модуль Django (django.core.mail)

from django.core.mail import send_mail 

subject = 'Hello!' 
msg = '\n \n Hello World!' 
sender = settings.DEFAULT_FROM_EMAIL 
to = ['[email protected]'] 

send_mail(subject,msg,sender,to,fail_silently=False) 

Теперь, после перехода на GAE (на Python 2.7) это не сработает. Это просто бросить следующее сообщение об ошибке:

Exception Type: NotImplementedError 
Exception Location: C:\Program Files(x86)\Google\google_appengine\google\appengine\api\remote_socket\_remote_socket.py in gethostbyaddr, line 256 

У меня есть файл settings.py настроен как Follo

EMAIL_USE_TLS = True 
EMAIL_HOST = 'xxx.yyy.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'zzzzzzzzz' 
EMAIL_PORT = 587 

ли кто-нибудь отправить по электронной почте с модулем Django на GAE и знать что-то об этой ошибке?

ответ

3

Если вы хотите, чтобы отправлять сообщения электронной почты от AppEngine, вы должны использовать mail.send_mail():

from google.appengine.api import mail 

mail.send_mail(sender="Example.com Support <[email protected]>", 
       to="Albert Johnson <[email protected]>", 
       subject="Your account has been approved", 
       body="Hello, world!") 
+0

Это еще один вариант @Lipis (непосредственно с api из Google appengine или с помощью стороннего appengine_emailbackend). Я понял эту проблему. Но теперь я с другим: пытаюсь перенаправить почтовый ящик Google на мою личную почтовую рассылку (я хочу, чтобы электронное письмо было отправлено с адресом вроде: [email protected]). Я видел что-то связанное с этим [здесь] (http://stackoverflow.com/questions/7339932/send-mail-from-a-different-domain-in-google-app-engine). Вы знаете, как это сделать? – Raulsc

+0

@Raulsc, если вы читаете в документации, отправитель должен быть администратором вашего приложения, и вы можете подключить свое приложение GAE к своему пользовательскому домену, чтобы иметь возможность добавить [email protected] в список администраторов. Звучит страшно, но в конечном итоге вам придется иметь собственный домен для своего приложения, и именно так вы должны это делать. – Lipis

+0

@Raulsc Вы должны прочитать, как вы можете подключить свое приложение к пользовательскому домену (с помощью Google Apps) – Lipis

-1

Я fugured из проблемы, почему apeeared этой ошибки:

Джанго send_mail не поддерживаются на GAE. В нашем приложении необходимо добавить сервер электронной почты Django, чтобы он выполнялся в GAE.

два шага, чтобы сделать:

  1. Импорт сторонних Modul ->appengine_emailbackend

  2. Запишите одну из следующих строк в вашем файле settings.py:

    EMAIL_BACKEND = 'appengine_emailbackend.async.EmailBackend'

    EMAIL_BACKEND = 'appengine_emailbackend.EmailBackend'

Несмотря на это, после использования этого бэкэнд он не выдает никаких ошибок, но ничего не отправляет.

Кто-нибудь может помочь?

+0

я понял, проблема: когда Джанго приложение переносится в GAE, это не представляется возможным использовать почтовую программу, отличную Google. Когда я попытался отправить электронное письмо с помощью другой почтовой программы, функция send_mail сообщила мне об ошибке: «Несанкционированный отправитель». Итак, извините, ребята, но мы знаем, что мы просто можем отправлять электронные письма с помощью учетной записи gmail. – Raulsc

Смежные вопросы