Unable to send email from python
Question: 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](http://stackoverflow.com/a/882770/5039470)


Answer: 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:

  * Server name : smtp.gmail.com
  * Server port for SSL : 465
  * Server port for TLS : 587

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?](http://stackoverflow.com/questions/10147455/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"
    

