14π
your server mail.privateemail.com
does not know what is STARTTLS
SMTP Commnad is
this may happen in two cases:
- your server (mail.privateemail.com) do not support secure communication at all and you need to use plain, non-encrypted communication.
- you are trying to connect to the port that is already using SSL as the communication, then STARTTLS to upgrade connection to secure make no sense whatsoever.
- your server is configured improperly and ignores STARTTLS on submission port (587).
Judging, that you are connecting to port 587 which should provide plain communication β itβs either 1 or 3.
If you want this just work, remove EMAIL_USE_TLS = True
or set it to False
, otherwise β SMTP server configuration should be fixed.
2π
You may try SSL instead of TLS by making following changes in settings.py
EMAIL_USE_SSL = True
EMAIL_PORT = 465
hope that helps
- Django does not honor ON DELETE CASCADE
- How to display total record count against models in django admin
- Django ForeignKey which does not require referential integrity?
- How to add filters to a query dynamically in Django?
- How to connect django to docker redis container?
- Django generate csv file on view and download
- Meta.fields contains a field that isn't defined on this FilterSet: ****
0π
I am able to resolve the issue with modifying below line of code, by adding port number with server name:
server = smtplib.SMTP('mail.mycompany.com:587')
0π
Not sure if you have solved the problem yet. I also recently try the 2-month free private email package from NameCheap. Here is my code and it works for me as of Jan 2018:
import smtplib
from email.message import EmailMessage
fromaddr = 'account@yourdomain.com'
toaddrs = "recipient@somedomain.com"
SMTPServer = 'mail.privateemail.com'
port = 465 #587
login = "account@yourdomain.com"
password = "password"
msg = EmailMessage()
msgtxt = "http://www.google.com"+"\n\n"+"This is a test."
msg.set_content(msgtxt)
msg['Subject'] = "Test message"
msg['From'] = fromaddr
msg['To'] = toaddrs
server = smtplib.SMTP_SSL(SMTPServer, port) #use smtplib.SMTP() if port is 587
#server.starttls()
server.login(login, password)
server.send_message(msg)
server.quit()
Hope this help!
PS. You can also use port 587, but you have to use smtplib.SMTP()
instead of smtplib.SMTP_SSL()
, and also have to un-comment the server.starttls()
line.
- Overriding Django's RelatedManager methods
- Override Django widgets default templates
- Django + Psycopg2: InterfaceError: only protocol 3 supported