学习-email实现 by Python3

学习资料:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005226355aadb8d4b2f3f42f6b1d6f2c5bd8d5263000

    #coding:utf-8
    #!/usr/bin/env python3
    import smtplib
    from email import encoders
    from email.mime.text import MIMEText
    from email.header import Header
    from email.utils import parseaddr, formataddr
    
    def _format_addr(s):
        """编写了一个函数来格式化一个邮件地址。
        不能简单地传入name <[email protected]>,
        因为如果包含中文,需要通过Header对象进行编码。
        """
        name, addr = parseaddr(s)
        return formataddr((Header(name, 'utf-8').encode(), addr))
    
    from_addr = input('from:')
    password = input('password:') #这里的密钥不是邮箱密码
    smtp_server = 'smtp.126.com'
    to_addr = input('to:')
    
    #不同的信息类型对应不同的格式,plain或html
    # msg = MIMEText('hello你好, send by python3... ', 'plain', 'utf-8')
    msg = MIMEText('<html><body><h3>Hello</h3>' +
        '<p>send by <a href="http://www.python.org">Python</a>...</p>' +
        '</body></html>', 'html', 'utf-8')
    
    msg['From'] = _format_addr('Python lover <%s>' % from_addr)
    msg['To'] = _format_addr('管理员 <%s>' % to_addr)
    msg['Subject'] = Header('来自SMTP的问候……', 'utf-8').encode()
    
    server = smtplib.SMTP(smtp_server, 25) #SMTP端口是25
    server.set_debuglevel(1)
    server.login(from_addr, password)
    server.sendmail(from_addr, [to_addr], msg.as_string())
    server.quit()

注意事项:
1,邮箱必须手动开通POP或SMTP功能,即通过第三方软件登陆访问SMTP服务器
2,发送信息需要补充From,To,Subject,不然会被拒绝。
3,

猜你喜欢

转载自blog.csdn.net/leon1827/article/details/83278964