代码改变世界

Python发送邮件不需要发件人密码认证

2018-11-22 08:18  linkxu  阅读(2368)  评论(0编辑  收藏  举报
#!/usr/bin/python

# coding: UTF-8
 
import smtplib
from email.mime.text import MIMEText
 
 
receivers_list=["chengang@example.com",]
#mail_host="dns.com"
mail_host="1.2.3.4"
sender_email="send@bat.com"
#mail_pwd="*************" //有的需要,有的不需要
  
  
def send_email(subject, content, receivers_list):
    print 'Setting MIMEText'
    msg = MIMEText(content.encode('utf8'), _subtype = 'html', _charset = 'utf8')
    msg['From'] = sender_email
    msg['Subject'] = u'%s' % subject
    msg['To'] = ",".join(receivers_list)
 
    try:
        # s = smtplib.SMTP_SSL(mail_host, 465) //有的需要,有的不需要
        s = smtplib.SMTP(mail_host, 25)
        # s.connect(mail_host) //和上面的连接任选一种
        #s.set_debuglevel(1)
        #s.ehlo() //有的需要,有的不需要
        #s.starttls() //有的需要,有的不需要
        #s.ehlo()
        #s.login(mail_user, mail_pwd) //有的需要,有的不需要
 
        s.sendmail(sender_email, receivers_list, msg.as_string())
 
        print 'close the connection between the mail server'
        s.close()
    except Exception as e:
        print 'Exception: ', e
 
if __name__ == '__main__':
    send_email("subject title", 'email content', receivers_list)