Google App Engine отправляет почтовый сервис вызывает исключение - PullRequest
1 голос
/ 20 августа 2011

Я пытался использовать службу отправки почты движка приложения на моем сайте. В настоящее время я поставил что-то простое, как:

message = mail.EmailMessage(sender="Subhranath Chunder <subhranath@gmail.com>", \
                                    subject="Your account has been approved")
message.to = "Subhranath Chunder <subhranathc@yahoo.com>"
message.body = "Just another message"
message.send()

Но каждый раз, когда обработчик кода вызывает эту ошибку:

2011-08-20 04:44:36.988
ApplicationError: 1 Internal error
Traceback (most recent call last):
  File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py", line 703, in __call__
    handler.post(*groups)
  File "/base/data/home/apps/s~subhranath/0-2.352669327317975990/index.py", line 71, in post
    message.send()
  File "/base/python_runtime/python_lib/versions/1/google/appengine/api/mail.py", line 895, in send
    raise e
ApplicationError: ApplicationError: 1 Internal error

Мой код другой версии, а не версии по умолчанию. Я не могу изменить эту версию как версию по умолчанию, если эта ошибка не будет устранена. Есть идеи, почему это происходит?

Ответы [ 2 ]

0 голосов
/ 21 августа 2011

Кажется, что это сбой системы движка приложения.Теперь работает тот же код, без какого-либо нового развертывания.

0 голосов
/ 20 августа 2011

Отправитель должен либо иметь привилегии, либо быть зарегистрированным пользователем.Поэтому subhranath@gmail.com должен иметь права администратора для вашего местоположения или быть зарегистрированным пользователем для запуска вашего кода.

Самый простой пример - это HTTP-запрос для отправки электронной почты:

  def get(self):    
    message = mail.EmailMessage(sender='subhranath_app_admin@gmail.com', subject='Email')
    message.to='any...@gmail.com'
    message.body = os.environ.get('HTTP_HOST')      
    message.send() 

Если вы хотите отправить электронное письмо как зарегистрированный пользователь, вы можете сделать отправителя переменной:

senderemail = users.get_current_user().email() if users.get_current_user() else 'subhranath@gmail.com'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...