您的位置:首页 > 编程语言 > Python开发

用python自动发送邮件

2020-08-31 15:29 337 查看

本文采用的是python2,利用SMTP协议和163邮箱发送邮件到指定邮箱。在使用前,需要利用你的第三方邮箱作为SMTP的服务器,一般可以使用QQ邮箱或者163邮箱。即可以理解为利用这个python脚本来登录163邮箱或者QQ邮箱发送给其他邮箱地址。

或者163邮箱的账户和授权码

登录你的163邮箱,在设置里面开启SMTP服务,开启后会分配一个授权码,请记下这个授权码

python脚本

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 第三方 SMTP 服务
mail_host="smtp.163.com"  # 163SMTP置服务器
mail_user="XXXX@163.com"    # 你的163邮箱用户名
mail_pass="LXXXXXXXXXXXX"   # 163给你的授权码

sender = 'XXXX@163.com' # 你的163邮箱
receivers = ['XXX@XXX.com']  # 接收邮件地址

message = MIMEText('Hi Victor \r\n I am from HuNan, Nice to meet you! \r\n Bob', 'plain', 'utf-8') # 第一个参数为你要发送的邮件内容

subject = 'My Notification' #你要发送的邮件标题
message['Subject'] = Header(subject, 'utf-8')
message['From'] = 'XXX<XXXX@163.com>'  # 你的163邮箱
message['To'] = 'XXX@XXX.com' # 接收邮件地址

try:
smtpObj = smtplib.SMTP()

ret_code,ret_info = smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号
print "ret_code: " + str(ret_code) + " &ret_info: " + ret_info
# smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465

ret_code,ret_info = smtpObj.login(mail_user,mail_pass)
print "ret_code: " + str(ret_code) + " &ret_info: " + ret_info

ret_info = smtpObj.sendmail(sender, receivers, message.as_string())
print "ret_info: " + str(ret_info)

except smtplib.SMTPException:
print u"Error: 无法发送邮件"
smtpObj.quit()
else:
print u"邮件发送成功"
smtpObj.quit()

运行以上脚本就可以发送邮件了。
如遇到错误可以查看错误信息,到评论区贴出,博主可以帮看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: