Python学习之使用Python发送邮

发布时间:2019-06-28 17:45:37编辑:auto阅读(1701)

    最近写的检查redis配置的脚本中需要增加一个发送邮件的功能,于是现学现用了python的邮件发送模块smtplib.可以参考《Python for Unix and Linux Administrator》一书

    #/usr/bin/python
    
    import smtplib                                #导入smtplib模块
    
    mail_server='smtp.exmail.qq.com'              #定义发送有邮件服务器的地址和端口
    mail_server_port=25
    
    from_addr='test@qq.com'                       #定义发送方和接收方地址
    to_addr='abc123@qq.com'
    
    from_header='From: %s\r\n' % from_addr        
    to_header='To: %s\r\n\r\n' % to_addr
    subject_header='Subject: nothint intersting'
    
    body='This is a not-very-interesting email.'
    
    email_message='%s\n%s\n%s\n\n%s' % (from_header,to_header,subject_header,body)
    
    s=smtplib.SMTP(mail_server,mail_server_port)    #连接邮件服务器
    #s.set_debuglevel(1)                            #开启debug
    s.login("test@qq.com","12345")                  #登录邮件服务器
    #s.starttls()                                   
    s.sendmail(from_addr,to_addr,email_message)     #发送邮件
    s.quit()


    显示的结果为:

    wKiom1OZlvricG8sAAEa-TrHp5M083.jpg


    从上面可以看出以上代码发出的邮件不是我们想要的格式,邮件主题和收件人显示的位置有问题。改成以下的代码

    #/usr/bin/python
    
    import smtplib
    from email.MIMEMultipart import MIMEMultipart     
    from email.MIMEText import MIMEText
    #这两个模块可以格式化邮件内容
    
    mail_server='smtp.exmail.qq.com'
    mail_server_port=25
    
    mail_user='test@qq.com'
    mail_password='12345'
    
    from_addr='test@qq.com'
    to_addr='abc123@qq.com'
    subject_header='Subject: nothint intersting'
    
    
    
    body='This is a not-very-interesting email.'
    
    
    m=MIMEMultipart()                      #格式化邮件内容
    m["To"]=to_addr
    m["From"]=from_addr
    m["Subject"]=subject_header
    m.attach(MIMEText(body))
    
    
    s=smtplib.SMTP(mail_server,mail_server_port)
    s.set_debuglevel(1)
    s.login(mail_user,mail_password)
    #s.starttls()
    s.sendmail(from_addr,to_addr,m.as_string())         
    s.quit()


    显示结果如下:

    wKioL1OZmmPxIJLiAADVRAMNaFA179.jpg


    现在邮件就能正常显示收件人和主题了。



关键字