12

I am trying to send an email using python but despite I am using the local SMTP server it seems that it needs authentication. The code I run and the error I get can be seen below. I use port 587, because port 25 cannot be opened on my server. Could you please help me on setting up the local SMTP server using python on port 587?

>>> import smtplib
>>> from email.mime.text import MIMEText
>>> msg = MIMEText('Test body')
>>> me = 'support@mywebsite.com'
>>> to = 'myemail@gmail.com'
>>> msg['Subject'] = 'My Subject'
>>> msg['From'] = me
>>> msg['To'] = to
>>> s = smtplib.SMTP('localhost', 587)
>>> s.sendmail(me, [to], msg.as_string())

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/smtplib.py", line 722, in sendmail
    raise SMTPSenderRefused(code, resp, from_addr)
smtplib.SMTPSenderRefused: (530, '5.7.0 Authentication required', 'support@mywebsite.com')
4

1 回答 1

37

Then before you attempt to use s.sendmail, you use s.login('user', 'password') - http://docs.python.org/2/library/smtplib.html#smtplib.SMTP.login

If you don't have login details - then consult your system admin.

于 2013-01-07T13:09:40.127 回答