Django send_mail results in error 61 abandoned Mac OSX

A very severe error is being executed. I run Django on my Mac OSX, and when I tried to send an email from my application, it freezes and gives me this error: "Error 61 Connection Refused"

Any ideas? I do not have a firewall. If necessary, I can upload an error image.

+6
django smtp sendmail
source share
4 answers

Have you configured the EMAIL_* settings in settings.py? Error 61 is the error you get if you leave it by default and you do not have a local SMTP server.

Alternatively, as Peter points out, if you configured it, you may need to use authentication with your SMTP server.

+4
source share

Being completely Max OS X ignorant, I assume that your SMTP server requires authentication.

+1
source share

Simply, if sendmail works through the command line, copy the code from http://djangosnippets.org/snippets/1864/ to the sendmail.py file

 """sendmail email backend class.""" import threading from django.conf import settings from django.core.mail.backends.base import BaseEmailBackend from subprocess import Popen,PIPE class EmailBackend(BaseEmailBackend): def __init__(self, fail_silently=False, **kwargs): super(EmailBackend, self).__init__(fail_silently=fail_silently) self._lock = threading.RLock() def open(self): return True def close(self): pass def send_messages(self, email_messages): """ Sends one or more EmailMessage objects and returns the number of email messages sent. """ if not email_messages: return self._lock.acquire() try: num_sent = 0 for message in email_messages: sent = self._send(message) if sent: num_sent += 1 finally: self._lock.release() return num_sent def _send(self, email_message): """A helper method that does the actual sending.""" if not email_message.recipients(): return False try: ps = Popen(["sendmail"]+list(email_message.recipients()), \ stdin=PIPE) ps.stdin.write(email_message.message().as_string()) ps.stdin.flush() ps.stdin.close() return not ps.wait() except: if not self.fail_silently: raise return False return True 

Inside settings.py set the variable:

 EMAIL_BACKEND = 'path.to.sendmail.EmailBackend' 
+1
source share

I had a similar problem and I found this link: http://dashasalo.com/2011/05/29/django-send_mail-connection-refused-on-macos-x/

In principle, to send mail from it you need to have a mail server. If there is no mail server, you will receive 61.

0
source share

All Articles