2012-08-11 17 views
2

Я создал следующие записи в моем файле «settings.py»Джанго: Настройка электронной почты

# Email setup 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'thepassword' 
EMAIL_PORT = 587 

Тогда я выпустил следующую команду в терминале:

email = EmailMessage('Hello','Have you received this mail?',to=['[email protected]']) 

меня 1 как Ouput.

Когда я проверил почтовый ящик на 'someone @ gmail.com', в почтовом ящике не было почты. Я пропустил что-то?

+0

какой хостинг-провайдер вы используете? там также должна быть какая-то конфигурация. – AndyL

+0

Я просто на локальной машине, а не с помощью хоста прямо сейчас. –

ответ

2

Вы должны установить параметр from_email (как kwarg или 3rd arg) с вызовом EmailMessage. Или определить в settings.py:

DEFAULT_FROM_EMAIL = '[email protected]' 

Это принимается по умолчанию, если не from_email не предоставляется EmailMessage.

В примечании, относящемся к полу, возможно, также неплохо определить SERVER_EMAIL в settings.py. Этот используется с mail_admins и mail_managers от Django.

1

Все ваши настройки верны и полны, вы просто пропустили одну вещь в конце. Вы создали почтовый объект, и теперь email готов к отправке объекта электронной почты, но вам нужно отправить его с email.send(). Для получения дополнительной информации и примеров проверьте Django documentation. Кроме того, вы можете использовать send_mail, который автоматически создает объект электронной почты и отправляет его.

from django.core.mail import send_mail 

mail_title = 'Hello!' 
message = 'Have you received this mail?' 
email = '[email protected]' 
recipients = '[email protected]' 

send_mail(mail_title, message, email, [recipients]) 
+0

Я отправил почту, тогда только я получил «1» в качестве вывода –

+0

Вы пробовали войти в '' someone @ someorg.com'', который вы установили в 'EMAIL_HOST_USER', и проверить отправленную почту? Вы видите это там? Или, возможно, сообщение об ошибке, которое получатель недоступен? – Scillon

0

По следующей ссылке https://docs.djangoproject.com/en/1.3/topics/email/, вы должны поставить электронную почту в скобках. Это означает, что это должно выглядеть так:

from django.core.mail.import send_mail 

mail_title = 'Hello!' 
message = 'Have you received this mail?' 
email = [email protected] 
recipients = '[email protected]' 

send_mail(mail_title, message, email, [recipients]) 
Смежные вопросы