I am using the following code to send email from python program in localhost,
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
me = "tonyr1291@gmail.com"
you = "testaccount@gmail.com"
msg = MIMEMultipart('alternative')
msg['Subject'] = "Link"
msg['From'] = me
msg['To'] = you
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"
html = """\
<html>
<head></head>
<body>
<p>Hi!<br>
How are you?<br>
Here is the <a href="http://www.python.org">link</a> you wanted.
</p>
</body>
</html>
"""
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
s = smtplib.SMTP('localhost',5000)
s.sendmail(me, you, msg.as_string())
s.quit()
This code is from python documentation.
When I run this code, it is running continuously but no email is sent.
I would like to know, do I have to make some other configurations anywhere else other than this code.
I am not seeing any error.
I am using python 2.7
This is given as a solution in Sending HTML email using Python
It seems that you're using a gmail id. Now, the SMTP server is not your tornado server. it is the server of the email provider.
You can search online for the smtp settings for the gmail server and get the following:
I've gotten them from http://email.about.com/od/accessinggmail/f/Gmail_SMTP_Settings.htm
Also, you need to ensure you do not enable gmail's 2 step authentication when doing this, otherwise it will fail. Also, gmail specifically may require you to send other things like ehlo and starttls. You can find a previous answer with a complete example here : How to send an email with Gmail as provider using Python?
import smtplib
gmail_user = user
gmail_pwd = pwd
FROM = user
TO = recipient if type(recipient) is list else [recipient]
SUBJECT = subject
TEXT = body
# Prepare actual message
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
try:
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(gmail_user, gmail_pwd)
server.sendmail(FROM, TO, message)
server.close()
print 'successfully sent the mail'
except:
print "failed to send mail"
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.