2013-09-21 6 views
3

Я пробовал GAE и имел небольшую проблему с отправкой электронной почты из моего приложения как в процессе разработки, так и в производство. Я понимаю, что серверу разработки требуется небольшая конфигурация, но производство должно быть отправлено по электронной почте. Нет ошибок, которые я могу видеть, просматривая консоль (я запускаю сервер через окно терминала), и ни один из них не указан в производственном приложении.Проблемы с Python GAE Отправка электронной почты

Код:

def contactSend(): 
message = mail.EmailMessage() 
message.sender = "[email protected]" 
message.to = "[email protected]" 
message.subject = "Test email from python" 
message.body = "This is the test" 
message.send() 

То, что я проверил до сих пор: код представляется правильным. -Инструкция -Sender (и) имеет права администратора на уровне администратора. -Проект настроен как Python 2.7 (некоторые проблемы на 2.5, я думаю). -Мой спам-папка.

Я уверен, что, вероятно, я пропустил что-то простое, так как я очень новичок в GAE. Любые идеи очень приветствуются.

Edit: Я также попытался mail.sendmail:

mail.send_mail(sender="[email protected]", 
      to="[email protected]", 
      subject="This is the test 1124pm", 
      body="TEST!") 

не повезло там. Возможно, что мне нужно зарегистрировать домен или настроить аккаунт Google Apps?

Редактировать 2 11:52 утра: Я попытался проверить check_valid_email, и это вернулось. Я увидел функцию send_mail_to_admins и дал этот снимок, предполагая, что он может быть менее ограниченным и, возможно, работать, но ничего не существует.

Edit3: Я не знаю, если это помогает, но вот обработчик запроса:

class contactSend(webapp2.RequestHandler): 
    def post(self): 
     self.response.headers['Content-Type'] = 'text/html' 
     contactSend() 
     self.response.out.write("sent! ") 
+0

Вы используете сервер Dev с --enable_sendmail вариант? – rajpy

+0

Да, хороший вопрос. Я также выполняю каждый тест в реальном приложении на GAE, чтобы быть уверенным. –

+0

Я просто попробовал снова, используя адрес электронной почты «[email protected]», но ничего там не было. Оба dev и живут. –

ответ

1

Ваших фрагментам кода является правильным (за исключением неправильного отступа вашей первой функции), так что я m будет предоставлять некоторую отладочную информацию, чтобы помочь вам решить вашу проблему.

  1. Проверьте журналы своего приложения, чтобы узнать, возникают ли какие-либо исключения из-за вашего кода, что может помешать работе работать должным образом.
    https://appengine.google.com/logs?&app_id=YOUR_APP_ID
  2. Проверьте Квота Подробная информация о приложении, чтобы увидеть, если все письма были отправлены. https://appengine.google.com/dashboard/quotadetails?&app_id=YOUR_APP_ID
  3. Убедитесь, что адрес электронной почты sender принял зови App Engine и не указано, как «до» на странице Разрешения. https://appengine.google.com/permissions?&app_id=YOUR_APP_ID
  4. Дважды проверьте адреса электронной почты to и sender. Скопируйте/вставьте их и попробуйте отправить им электронное письмо прямо через приложение электронной почты по вашему выбору.
+1

Спасибо за советы! Мой журнал просто выглядит следующим образом:/contactsend 200 14ms 0kb Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/28.0.1500.95 Safari/537.36 –

+0

Проверка основной квоты - все в 0 Так что ничего фактически не вызвало. –

+0

Проблема * может заключаться в том, что ваш 'RequestHandler' называется' contactSend', и вы вызываете 'contactSend()' как функцию внутри него. Вы не можете назвать их одинаковыми. Попробуйте изменить имя функции ** или ** имя обработчика на что-то другое. – erichiggins

0

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

Если вы не хотите/нужно создать домен, и если приложение требует войти, вы могли бы просто использовать:

mail.send_mail(sender=users.get_current_user().email(), 
     to="[email protected]", 
     subject="This is the test 1124pm", 
     body="TEST!") 
Смежные вопросы