when I post a comment, do not save, crashes (error: [Errno 111] Connection refused), why?
import time
from calendar import month_name
from
Install postfix package on your server and it works. If is ubuntu, try it:
sudo apt-get install postfix
In your settings, put:
EMAIL_HOST = 'localhost'
We recently moved away from the Python debugging email server to use a program called Mailcatcher. Mailcatcher runs as a daemon to intercept all of your test email messages to port 1025, and is integrated with a web server so that you can then view the intercepted emails from a browser. Advantages
You can read more and download it here: http://rubygems.org/gems/mailcatcher
If you don't like Ruby, a co-worker of mine has ported the functionality of Mailcatcher to node.js -- check out MailDev here: http://djfarrelly.github.io/MailDev/
EMailDump is usable and useful local server smtp, easy installation, this developed in python https://github.com/ThiefMaster/maildump
I also run into this error. Instead of using gmail, I decided to setup my own mailserver using postfix. See my reasons here.
To setup postfix on Ubuntu 12.04:
sudo apt-get install postfix
Then, copy the config file to /etc/postfix/:
cp /usr/share/postfix/main.cf.debian /etc/postfix/main.cf
Add the following lines to main.cf:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination = localhost
Reload the config file:
/etc/init.d/postfix reload
To test and see if postfix is working:
telnet localhost 25
Then enter the following line by line:
mail from: whatever@whatever.com
rcpt to: your_real_email_addr@blah.com
data (press enter)
type whatever content you feel like to type
. (put an extra period on the last line and then press enter again)
If it works, you should see something like this:
250 2.0.0 Ok: queued as CC732427AE
Next, put the following line in your Django's settings.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_TLS = False
DEFAULT_FROM_EMAIL = 'Server <server@whatever.com>'
To test if Django can send email via postfix, open Django shell:
./manage.py shell
>>> from django.core.mail import send_mail
>>> send_mail('Subject here', 'Here is the message.', 'from@example.com',
['to@example.com'], fail_silently=False)
Check your spam inbox and you should see the email above shown.
installing postfix did it for me.
There seemed to be no answer here that was suitably upvoted, so this page can be a bit confusing. Notice in the documentation: https://docs.djangoproject.com/en/1.3/ref/settings/#std:setting-EMAIL_HOST
the parameters settings.py have default values.
When I installed postfix it fixed the problem, locally at least.
Hope this helps another confused soul!
Looks like you are trying to send a mail (send_mail()
) and your mail settings in your settings.py
are not correct.
You should check the docs for sending emails.
For debugging purposes you could setup a local smtpserver with this command:
python -m smtpd -n -c DebuggingServer localhost:1025
and adjust your mail settings accordingly:
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
This is documented here: Testing e-mail sending
As an alternative to starting a dedicated debugging server you could use the console.EmailBackend which was added to Django recently.