Send email using Gmail, Django, and Mezzanine

March 18, 2015 4.5k views
Django Email
hockeyd
By:
hockeyd

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.