V mojom súbore "settings.py" som vytvoril nasledujúce položky
# Email setup
EMAIL_USE_TLS = True
EMAIL_HOST = "smtp.gmail.com"
EMAIL_HOST_USER = "someone@someorg.com"
EMAIL_HOST_PASSWORD = "thepassword"
EMAIL_PORT = 587
Potom som v termináli vydal nasledovný príkaz:
email = EmailMessage("Hello","Have you received this mail?",to=["someone@gmail.com"])
mám 1
ako výstup.
Keď som skontroloval poštovú schránku na adrese "someone@gmail.com", v poštovej schránke neexistovala žiadna pošta. Chýba mi niečo?
odpovede:
2 pre odpoveď č. 1Mali by ste nastaviť from_email
parameter (ako kwarg alebo 3rd arg) s EmailMessage
zavolať. Alebo nastavte v settings.py:
DEFAULT_FROM_EMAIL = "some.mail@inter.net"
Toto je implicitné, ak nie from_email
je k dispozícii EmailMessage
.
Na semi-súvisiace poznámky, to je pravdepodobne dobrý nápad tiež definovať SERVER_EMAIL
v nastavení.py. Ten sa používa s mail_admins
a mail_managers
od Django.
1 pre odpoveď č. 2
Všetky vaše nastavenia sú správne a úplné, na konci ste jednoducho vynechali jednu vec. Vytvorili ste e-mailový objekt a teraz email
je pripravený na odoslanie e-mailového objektu, ale musíte ho skutočne poslať email.send()
, Pre viac informácií a príkladov skontrolujte Django dokumentácia, Tiež môžete použiť send_mail
ktorý automaticky vytvorí e-mailový objekt a pošle ho.
from django.core.mail import send_mail
mail_title = "Hello!"
message = "Have you received this mail?"
email = "admin@company.com"
recipients = "someone@gmail.com"
send_mail(mail_title, message, email, [recipients])
0 pre odpoveď č. 3
Podľa nasledujúceho odkazu https://docs.djangoproject.com/en/1.3/topics/email/, mali by ste vložiť e-mail do zátvoriek. To znamená, že by to malo vyzerať takto:
from django.core.mail.import send_mail
mail_title = "Hello!"
message = "Have you received this mail?"
email = admin@company.com
recipients = "someone@gmail.com"
send_mail(mail_title, message, email, [recipients])