У меня та же проблема с подключением к тайм-ауты. Мне кажется, что есть проблемы со SSL-сокетами в Django SMTP-библиотеке по умолчанию. В версии разработки Django существует опция для установки EMAIL_USE_SSL = True
, которая позволяет использовать неявное соединение (в отличие от явно, которое задано EMAIL_USE_TLS = True
). Обычно первый (неявный) использует порт 465, а последний (явно) использует порт 587. См. Django docs - сравните версию разработки с версией 1.5. Обратите внимание, что опция EMAIL_USE_SSL
не присутствует в 1.5.
Таким образом, проблема в том, что Zoho's default SMTP server uses port 465 and requires SSL, но опция EMAIL_USE_TLS
не выполняет это требование. (Обратите внимание: возможно, попробуйте установить эту опцию на False
? Я не пробовал это.) В любом случае, я думаю, что это проблема, специфичная для Django, и ее может не решить до 1.7.
Что касается решения вашей проблемы: вы можете определенно получить доступ к SMTP-серверу Zoho с помощью Python (2.7.1) smtplib
(см. Скрипт ниже). Итак, если вы хотите немного неэлегантное исправление, вы можете пойти по этому маршруту. Я тестировал это в Django 1.5.1, и он работает как шарм.
Вот автономные Python скрипт (который может быть адаптирован для использования в проекте Django):
import smtplib
from email.mime.text import MIMEText
# Define to/from
sender = '[email protected]'
recipient = '[email protected]'
# Create message
msg = MIMEText("Message text")
msg['Subject'] = "Sent from python"
msg['From'] = sender
msg['To'] = recipient
# Create server object with SSL option
server = smtplib.SMTP_SSL('smtp.zoho.com', 465)
# Perform operations via server
server.login('[email protected]', 'password')
server.sendmail(sender, [recipient], msg.as_string())
server.quit()
Попробуйте проверить, что выше скрипт работает с учетными данными Zoho, прежде чем подключить его в ваш веб-проект. Удачи!
Этот метод работает для меня :) Как отправить html-контент в сообщении – ZenOut
Работает как шарм. Дополнение: если вы хотите отправлять электронные письма нескольким лицам, измените две строки: 'msg ['To'] = '[email protected]; u2 @ ex.com'' и' server.sendmail (отправитель, [' [email protected] ',' [email protected] '], msg.as_string()) ' –
@ZenOut вам придется использовать электронную почту Multipart ..see https://docs.python.org/2/library/ email-examples.html # id5 – Coderaemon