用Python发邮件

用Python发邮件Python真是万能语言啊,还能发邮件。。。我也是最近刚知道!那么问题来了,用Python发邮件有什么用啊?

Python真是万能语言啊,还能发邮件。。。我也是最近刚知道!那么问题来了,用Python发邮件有什么用啊?

1.可以和爬虫代码结合一下、譬如查12306、查携程机票时可以设置查询到自动发邮件提醒

2.程序猿们可以利用Python发邮件监控程序的运行,譬如有bug报错了,赶紧发个邮件提醒你,回来公司加班!

3.搜集网上行业信息的,搜集到一堆邮箱,可以群发啊,做广告啊~(当然这样不太好)

4.譬如我可以写一个暖心的小程序,让Python自动在恶劣天气,提醒亲朋好友注意加衣服,在生日时发送生日祝福。。。。。。

果然Python大法好啊~


本次,我们发邮件用到的Python库是smtplib和email。简单来说,smtplib库主要是用于负责和邮件服务器进行通讯,email库则主要用于规定编写邮件的头、主体、内容、附件等。

发邮件之前我们需要用Python登录smtp服务器,这样才能有发送权限,所以,我们需要去邮箱手动开启smtp服务,然后记住服务器授权码(授权码意思是,你可以不用我的网页邮箱或者邮箱app登录,你可以用邮箱账号+授权码在后台来获取邮箱服务器的内容)

用Python发邮件

由于本次我们用QQ邮箱发送,你也可以用网易邮箱或者其他邮箱发送,原理都是类似~

如何开启QQ邮箱smtp服务器和获取授权码:�


转载自:jingyan.baidu.com/article/fed…

很多场合都会用到邮箱授权码进行邮件的收取,现在讲一下如何QQ邮箱的授权码获取方式,网易邮箱的也差不多哦~

工具/原料

  • 电脑版的QQ邮箱

方法/步骤

登录电脑版QQ邮箱,选择最上方的“设置”。

用Python发邮件

如图选择“账户”,切换到账户详情页面。

用Python发邮件

在账户页面往下拉,可以看到pop3设置,选择“开启”。

用Python发邮件

按照弹出的窗口提示操作进行密保验证。有多种方式可以验证,比如手机令牌等。推荐使用短信验证。

用Python发邮件

按照短信验证的提示发送短信。发送成功后直接点击“我已发送”。

用Python发邮件

弹出的提示中直接显示16位的授权码,可以复制下来,或者是记下来,千万不要记错了。然后点击“确定”。

用Python发邮件

下方的收取选项一般是默认30天的,点击下拉箭头,选择“全部”,并点击页面最下方的保存更改。千万别忘了点击保存,不然之前做的都白费了!

用Python发邮件

最后就是到需要授权码的那些地方输入刚获得的16位授权码就可以了。

END

注意事项

  • 操作完别忘了保存。
  • 授权码不要记错了。
  • 收取选项改为“全部”,不然无法导入所有的邮件。

获取好服务器授权码后,我们就可以写代码了,本次发送一个简单的文字邮件,然后添加一张可爱猪的图片作为附件:

用Python发邮件

程序运行过程:

程序运行结果:

用Python发邮件

代码如下:

import smtplib
from email import encoders
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
#sender是邮件发送人邮箱,passWord是服务器授权码,mail_host是服务器地址(这里是QQsmtp服务器)
sender = 'xxxxxxx@qq.com'#
passWord = 'xxx'
mail_host = 'smtp.qq.com'
#receivers是邮件接收人,用列表保存,可以添加多个
receivers = ['aaa@qq.com','bbb@163.com']

#设置email信息
msg = MIMEMultipart()
#邮件主题
msg['Subject'] = input(f"{'请输入邮件主题:'}")
#发送方信息
msg['From'] = sender
#邮件正文是MIMEText:
msg_content = input(f"{'请输入邮件主内容:'}")
msg.attach(MIMEText(msg_content, 'plain', 'utf-8'))
# 添加附件就是加上一个MIMEBase,从本地读取一个图片:
with open('/Users/xxx/1.jpg', 'rb') as f:
    # 设置附件的MIME和文件名,这里是jpg类型,可以换png或其他类型:
    mime = MIMEBase('image', 'jpg', filename='Lyon.png')
    # 加上必要的头信息:
    mime.add_header('Content-Disposition', 'attachment', filename='Lyon.png')
    mime.add_header('Content-ID', '<0>')
    mime.add_header('X-Attachment-Id', '0')
    # 把附件的内容读进来:
    mime.set_payload(f.read())
    # 用Base64编码:
    encoders.encode_base64(mime)
    # 添加到MIMEMultipart:
    msg.attach(mime)

#登录并发送邮件
try:
    #QQsmtp服务器的端口号为465或587
    s = smtplib.SMTP_SSL("smtp.qq.com", 465)
    s.set_debuglevel(1)
    s.login(sender,passWord)
    #给receivers列表中的联系人逐个发送邮件
    for i in range(len(receivers)):
        to = receivers[i]
        msg['To'] = to
        s.sendmail(sender,to,msg.as_string())
        print('Success!')
    s.quit()
    print ("All emails have been sent over!")
except smtplib.SMTPException as e:
    print ("Falied,%s",e)

今天的文章用Python发邮件分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14289.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注