hockeyd
By:
hockeyd

Send email using Gmail, Django, and Mezzanine

March 18, 2015 3.9k views
Django Email

I'm trying to send notification emails using Django (1.6.1) and Mezzanine on Ubuntu 14.04. This is in my settings.py:

EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'info@example.com'
EMAIL_HOST_PASSWORD = 'secret'

This returns: [Errno 111] Connection refused

But I can send email from the console like this:

>> from django.core.mail import send_mail
>> send_mail('Subject here', 'Here is the message.', 'from@example.com',
    ['to@example.com'], fail_silently=False)

It return 1 and I actually got the email. I've tried Mandrill as well and got the same results.

After reading various threads, do I need to install Postfix to act as a relay or can I directly access the SMTP servers and email? I'd like to avoid installing Postfix if possible.

1 comment
  • On first blush, those settings look correct to me. Have you set up any firewalling on the server? I'd expect a SMTPAuthenticationError rather than "Connection refused" if it was being rejected by Google. Is there a full traceback for the error? It's very strange that it succeeds from the console but not from your app. Could you share a snippet of the actual code in app?

1 Answer

Same issue here:

from django.core.mail import sendmail
send
mail("oi","msg","atendimento@consultoriasigma.com.br",["george@consultoriasigma.com.br"],failsilently=False)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/opt/apps/.virtualenvs/sentry/local/lib/python2.7/site-packages/django/core/mail/
init.py", line 50, in sendmail
connection=connection).send()
File "/opt/apps/.virtualenvs/sentry/local/lib/python2.7/site-packages/django/core/mail/message.py", line 276, in send
return self.getconnection(failsilently).sendmessages([self])
File "/opt/apps/.virtualenvs/sentry/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 87, in send
messages
newconncreated = self.open()
File "/opt/apps/.virtualenvs/sentry/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 48, in open
localhostname=DNSNAME.getfqdn())
File "/usr/lib/python2.7/smtplib.py", line 256, in _
init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python2.7/smtplib.py", line 316, in connect
self.sock = self.getsocket(host, port, self.timeout)
File "/usr/lib/python2.7/smtplib.py", line 291, in getsocket
return socket.createconnection((host, port), timeout)
File "/usr/lib/python2.7/socket.py", line 571, in create
connection
raise err
error: [Errno 101] Network is unreachable

Have another answer? Share your knowledge.