2012-02-17 1 views
1

Пробовал конфиг в application.conf SMTPгероику играть! с sendgrid конфигурацией

mail.smtp.host=smtp.sendgrid.net 
mail.smtp.user=${SENDGRID_USERNAME} 
mail.smtp.pass=${SENDGRID_PASSWORD} 

И в контроллере

MultiPartEmail email = new MultiPartEmail(); 
//... setting from,to,subject,content... 
Mail.send(email); //using Play's util 

Но исключение происходит, говоря плохо учетные данные пользователя при проверке подлинности сервера SMTP.

Одна вещь, которую я замечаю, что, когда толчок Heroku и запустить приложение, он хотел бы предупредить:

WARNING: Cannot replace SENDGRID_USERNAME in configuration (mail.smtp.user=${SENDGRID_USERNAME}) 
    WARNING: Cannot replace ENV_SENDGRID_PASSWORD in configuration (mail.smtp.pass=${SENDGRID_PASSWORD}) 

Это может быть вызвано флагом прекомпиляции горит при развертывании ?? Вот мой Procfile:

web: play run --http.port=$PORT --%prod 
+0

Это ошибка на 'git push' времени? Если это так, вы можете игнорировать его. Вы получаете исключение из 'Mail.send()'? –

+0

без ошибок на 'git push', только предупреждение. Исключением является 'Mail.send()', говорящий о неверных учетных данных пользователя. Я пробовал, если я использую 'System.getenv (« SENDGRID_USERNAME »)' непосредственно в коде и использую 'send' MultipartEmail', он может отправить. Но в этом случае я не могу протестировать локально со встроенным почтовым макетом. – jackysee

ответ

4

Я создал простой Play + SendGrid + Heroku пример, который работает для меня:
https://github.com/jamesward/playsendgrid

я не уверен, что отличается от этого примера и код , Единственное странное, что я заметил выше, это то, где говорится ENV_SENDGRID_PASSWORD. Возможно, это имя переменной среды неверно.

+0

Есть ли способ использовать Play! конфигурации для отправки EMails с использованием ключей API вместо паролей? – AHH

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

  • Нет связанных вопросов^_^