Wysyłanie wiadomości e-mail używając Django oraz Gmail

Data publikacji: 2013-01-29 | Tagi:

Aby wysyłać pocztę przy użyciu Gmaila, należy spełnić dwa warunki:

  • Posiadać poprawnie skonfigurowane konto Gmail (nieważne, czy będzie to typowe konto, czy konto założone na własnej domenie przy pomocy GoogleApps).
  • Skonfigurować framework Django tak, by korzystał z konta Gmail, przy wysyłaniu poczty.

Zakładam, że punkt pierwszy jest opracowany i po zalogowaniu się do panelu konta, można wysyłać i odbierać pocztę.

Jeśli chodzi o punkt drugi, to w settings.py projektu Django należy dodać następujące wpisy:

DEFAULT_EMAIL='nasz-adres@gmail.com'
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'nasz-adres@gmail.com'
EMAIL_HOST_PASSWORD = 'nasze-haslo'
EMAIL_USE_TLS = True

W zasadzie można byłoby opuścić DEFAULT_EMAIL, a w jego miejsce podawać po prostu pusty string, mail i tak będzie wysłany od użytkownika konta Gmail.

Maile oczywiście wysyłamy w standardowy sposób:

from django.conf import settings
from django.core.mail import send_mail

mail_from = getattr(settings, 'DEFAULT_EMAIL', "")

send_mail('subj', 'body', from_mail, ['jakis.testowy.adresat@serwer.com', ])

Dobrodziejstwem tego rozwiązania jest to, że nie musimy konfigurować sami exima lub innego serwera poczty. Minus to to, że jest to mimo wszystko zewnętrzna usługa i po prostu kiedyś może nam spłatać jakiegoś figla. Chociaż mi osobiście jeszcze nie zdarzyło się, by Gmail odmówił współpracy.


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: