Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'from_email' not showing with 'send_mail' smtp

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 = '[email protected]'
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
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', '[email protected]', ['[email protected]'])
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 [email protected] and should be [email protected]

like image 318
Shane G Avatar asked May 18 '16 23:05

Shane G


2 Answers

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.

like image 142
e4c5 Avatar answered Sep 18 '22 16:09

e4c5


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, ['[email protected]'], 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.

like image 37
Uj Corb Avatar answered Sep 18 '22 16:09

Uj Corb