• 发邮件的python脚本


    1. 编写一个最简单的发邮件的python脚本

     
    1. #coding: utf-8
    2. import smtplib
    3. from email.mime.text import MIMEText
    4. from email.header import Header
    5. sender = '929135087@qq.com'       #发件人账号
    6. receiver = '929135087@qq.com'     #收件人,以列表的形式支持多个收件人,例:['收件人1','收件人2']
    7. subject = 'python email test'    #标题
    8. smtpserver = 'smtp.qq.com'       #设置邮件服务器
    9. username = '929135087@qq.com'    #用户名
    10. password = '*********'           #授权口令
    11. msg = MIMEText( 'Hello Python', 'plain', 'utf-8' )         #'内容','格式','编码'
    12. msg['Subject'] = Header( subject, 'utf-8' )                
    13. msg['From'] = Header( '小鱼', 'utf-8' )                    #发件人
    14. try:
    15.     #smtp = smtplib.SMTP()
    16.     smtp = smtplib.SMTP_SSL('smtp.qq.com:465')    #使用465端口,默认25端口
    17.     smtp.connect( smtpserver )
    18.     smtp.login( username, password )
    19.     smtp.sendmail( sender, receiver, msg.as_string()  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
    20.     print("邮件发送成功")
    21.     smtp.quit()
    22. except smtplib.SMTPException:
    23.     print("Error: 无法发送邮件")
     

    2. 运行结果

    如果在上述代码usernamepassword,变量中填写邮箱的帐号密码那么会看到以下报错:

     
    1. Traceback (most recent call last):
    2. File "mail.py", line 18, in <module>
    3. smtp.login( username, password )
    4. File "/usr/lib64/python2.6/smtplib.py", line 589, in login
    5. raise SMTPAuthenticationError(code, resp)
    6. smtplib.SMTPAuthenticationError: (535, 'Error: authentication failed')
     

    3. 解决方法

    调用163邮箱或qq邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件或QQ邮箱会让我们设置客户端授权码,这个授权码替代上面代码部分的password即可成功发送邮件

  • 相关阅读:
    java之jvm学习笔记五(实践写自己的类装载器)
    java之jvm学习笔记二(类装载器的体系结构)
    链式线性表
    java之jvm学习笔记十三(jvm基本结构)
    Java用户登陆界面
    李兴华JavaWeb开发笔记
    Java IO学习笔记:概念与原理
    Linux下一个简单的日志系统的设计及其C代码实现
    关于Core Location-ios定位
    C语言中main函数的參数具体解释
  • 原文地址:https://www.cnblogs.com/uvwill/p/10877181.html
Copyright © 2020-2023  润新知