zoukankan      html  css  js  c++  java
  • 利用python发送邮件

    找了很多使用python发送邮件的文章, 发现写的并不是太全, 导致坑特别多, 刚把这个坑跨过去, 在此记录下来

    本代码使用163作为发送客户端, 接收邮箱随意
    首先登录163邮箱, 开启POP3/SMTP/IMAP服务, 此过程需要验证第三方客户端登录验证权限, 并单独设置一个授权密码, 这个密码要记住

    #!/usr/bin/env python
    #coding:utf-8
    
    import smtplib
    from email.mime.text import MIMEText
    
    
    def send_mail(target_mail, content, subject):
        #收件人
        to_user = target_mail
        #发件人
        from_user = 'xxx@163.com'
        #注意这里的密码是之前开启服务时的授权码, 并不是邮箱密码
        from_mail_pass = 'xxxxxxxx'
        #这个是163的smtp服务器
        mail_host = 'smtp.163.com'
    
        msg = MIMEText(content, _subtype='plain', _charset='us-ascii')
        #邮件主题
        msg['Subject'] = subject
        msg['From'] = from_user
        msg['To'] = to_user
    
        #连接服务器
        server = smtplib.SMTP()
        server.connect(mail_host)
        #使用ehlo声明表示需要认证, 之后才能登录
        server.ehlo()
        #starttls表示提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。
        server.starttls()
    
        server.login(from_user, from_mail_pass)
        #发送邮件
        server.sendmail(from_user, to_user, msg.as_string())
        server.close()
        print '发送成功'
    
    
    target_mail = raw_input('收件人: ')
    subject = raw_input('主题: ')
    content = raw_input('正文: ')
    
    send_mail(target_mail, content, subject)
    
    

    具体邮件流程参考: http://www.cnblogs.com/yank/archive/2008/08/03/1258428.html

  • 相关阅读:
    oracle导入dmp数据库文件
    Merge into的使用详解-你Merge了没有【转】
    远程调试
    安卓Activity、service是否处于同一进程
    AIDL机制实现进程间的通讯实例
    安卓android:scaleType属性
    oracle索引
    Json-lib用法
    浅谈position: absolute和position:relative
    Tab Layout教程
  • 原文地址:https://www.cnblogs.com/qlshine/p/5928438.html
Copyright © 2011-2022 走看看