'from_email' not showing with 'send_mail' smtp

三世轮回 提交于 2019-12-10 18:38:09

问题


I have set up smtp with gmail. When I use send_mail the from email is not showing up in the account receiving the email.

Django settings.py

# DEFAULT_FROM_EMAIL = 'sendTo@gmail.com'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'sendTo@gmail.com'
EMAIL_HOST_PASSWORD = '**********'
EMAIL_USE_TLS = True

Using

$ python manage.py shell

I send the mail as follows,

>>> from django.core.mail import send_mail
>>> send_mail('subject is', 'message is and is not 12342', 'fromEmail@gmail.com', ['sendTo@gmail.com'])
1
>>>

I am receiving this email in my gmail account, (which is the same gmail account used for the smtp), but the from email is showing up as the sendTo@gmail.com and should be fromEmail@gmail.com


回答1:


I solved the problem using this view:

def contact(request):
    form = ContactForm(data=request.POST or None)

    if form.is_valid(): 
        subject = form.cleaned_data['sujet']
        message = form.cleaned_data['message']
        sender = form.cleaned_data['envoyeur']

        msg_mail = str(message) + " " + str(sender)

        send_mail(sujet, msg_mail, sender, ['corbin.julien@gmail.com'], fail_silently=False)

    return render(request, 'blog/contact.html', locals())

I actually append the email of the sender to the message. You could even remove the sender argument from send_mail. You just have to make your EmailField mandatory to make sure you'll get the sender's email address.




回答2:


When you send emails through google's SMTP servers you cannot change the from email field. It uses the same address that you provided for authentication.

If you want to change it you have to use either your own mail server or one of the numerous mail apis/servers available. Sendgrid, MailGun etc come to mind.



来源:https://stackoverflow.com/questions/37311635/from-email-not-showing-with-send-mail-smtp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!