I have a Django website hosted on a remote server. Whenever I encounter a Server Error (500) I am supposed to get an email with more information about the error. I am not getting these emails.
send_mail() works on this server through the shell.
mail_admins() works on this server through the shell.
Triggering a Server Error (500) only displays the error on the page and no email is ever sent.
Here are what I believe to be the relevant settings for sending email as well as receiving error emails.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = 'me#gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
SERVER_EMAIL = 'me#gmail.com'
ADMINS = [
('me', 'me#gmail.com'),
]
I solved the issue.
The problem was that I was not restarting Gunicorn (and maybe Nginx) after making changes to settings.py. I restarted Gunicorn with the proper email settings in settings.py and now everything works.
Related
I am newbie!
I want to create a django application that sends mail. it worked well on localhost, but when I deployed it, it stopped working because the host doesn't support smtp. He suggested using sendgrid, and I'm stuck here...
views.py
error:
The error message in the image that you have attached here is showing 403 forbidden which means the server understands the request but refuses to authorize it. Check whether from email address is used when you are verifying your send address. read docs in this link https://docs.sendgrid.com/ui/sending-email/sender-verification
and check all your settings for sendgrid is correct or not.
SENDGRID_API_KEY = os.getenv('SENDGRID_API_KEY')
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'apikey' # this is exactly the value 'apikey'
EMAIL_HOST_PASSWORD = SENDGRID_API_KEY
EMAIL_PORT = 587
EMAIL_USE_TLS = True
My Django app is able to log in into my Gmail account, but it is not sending emails.
I know it logged in because I tried sending an email to a non-existing email-address and Gmail gave me this error.
Even looked in my spam folders but nothing :(
However, when I manually send an email, it works properly.
This is my SMTP configuration in settings.py
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
I even tried hard-coding and changing the sender's email, but still no result.
I wasn't getting this error a few days before, but for some reason it does seem to be working now.
By the way, I'm using this for password reset functionality.
I set up everything as the Django documentation but when I test sending an email.It works but When I check my inbox I find out that I sent and revived from to the same email address.
Here is the settings.py
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = "myemail#gmail.com"
EMAIL_HOST_PASSWORD = "mypassword"
And the views.py
...
send_mail( 'subject', 'message', 'user#gmail.com', ['myemail#gmail.com',], fail_silently=False, )
...
But I received an email from myemail#gmail.com to me(myemail#gmail.com).
Im not sure if you did this already but if youre using gmail then you will need to do the following.
Sign in to your Google Admin console (Sign in using an administrator account)
Click Security > Less secure apps.
Select Allow users to manage their access to less secure apps.
Click Save.25
Also you should use environment variables for the email address if you are live already eg:
EMAIL_HOST_USER = os.environ.get('MY_EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('MY_EMAIL_PASS')
If its all working and you are just getting the mail to the wrong address can you send on the document you followed?
In terms of you settings.py that looks fine to me.
I'm trying to send email using smtp.gmail.com in Django project.
This is my email settings.
settings.py
# Email Settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = 'myaccount#gmail.com'
EMAIL_HOST_PASSWORD = 'mygooglepassword'
views.py
...
send_mail( "message title",
"message content",
"myaccount#gmail.com",
["myaccount#hotmail.com"],
fail_silently=False)
Whenever I try to send email, I get this error
gaierror at /contact-us/
[Errno-2] Name or service not known
I tried the followings.
I set my google account's less secure app access on.
I unchecked avast antivirus setting 'Setting->Protection->Core Shields->Mail Shield->Scan outbound emails(SMTP)'
Tried different ports in email settings. 587 and 25
Switched the ssl and tls in email settings.
But it's not sending yet. When I use 'django.core.mail.backends.console.EmailBackend' instead of 'django.core.mail.backends.smtp.EmailBackend', it prints email on console.
I double checked my gmail username and password on settings.
Please help me.
Thank you.
You may need to do some configuration on Google side.
Reference answer::
Go to your Google Account settings, find Security -> Account permissions -> Access for less secure apps, enable this option.
https://accounts.google.com/DisplayUnlockCaptcha
I'm trying to send email with django. Here's my settings.py file.
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'mymail#gmail.com'
EMAIL_HOST_PASSWORD = 'mailpassword'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'mymail#gmail.com'
I've also enabled access to less secure apps in the gmail settings.
On the production server whenever I try to send an email, it's raising an error in the command line upstream prematurely closed connection while reading response header from upstream.
On webpage it's showing 502 Bad Gateway error.
How can we solve this issue? Thank You . . .