MGXJMWJDEMNVUGQN
腾讯企业邮箱发邮件通知(python脚本):
可读文件的版本
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# 发件人邮箱账号
my_sender='guozh@paraview.cn'
# user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功
my_pass = 'Hao124'
# 收件人邮箱账号
my_user='xiecq@paraview.cn'
def mail(fileDir_asString):
with open(fileDir_asString, "r+") as f:
content = f.read()
ret=True
try:
# 邮件内容
msg=MIMEText(content,'plain','utf-8')
# 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['From']=formataddr(["guozh@paraview.cn",my_sender])
# 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['To']=formataddr(["xiecq@paraview.cn",my_user])
# 邮件的主题
msg['Subject']="发版流水线测试"
# SMTP服务器,腾讯企业邮箱端口是465,腾讯邮箱支持SSL(不强制), 不支持TLS
# qq邮箱smtp服务器地址:smtp.qq.com,端口号:456
# 163邮箱smtp服务器地址:smtp.163.com,端口号:25
server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
# 登录服务器,括号中对应的是发件人邮箱账号、邮箱密码
server.login(my_sender, my_pass)
# 发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(my_sender,[my_user,],msg.as_string())
# 关闭连接
server.quit()
# 如果 try 中的语句没有执行,则会执行下面的 ret=False
except Exception:
ret=False
return ret
ret=mail('/data/backup/scripts/mail.txt')
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
原版
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
# 发件人邮箱账号
my_sender='guozh@paraview.cn'
# user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功
my_pass = 'Hao124'
# 收件人邮箱账号
my_user='xiecq@paraview.cn'
def mail():
ret=True
try:
# 邮件内容
msg=MIMEText('..........。 ','plain','utf-8')
# 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['From']=formataddr(["guozh@paraview.cn",my_sender])
# 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['To']=formataddr(["xiecq@paraview.cn",my_user])
# 邮件的主题
msg['Subject']="使用腾讯邮箱发送邮件测试"
# SMTP服务器,腾讯企业邮箱端口是465,腾讯邮箱支持SSL(不强制), 不支持TLS
# qq邮箱smtp服务器地址:smtp.qq.com,端口号:456
# 163邮箱smtp服务器地址:smtp.163.com,端口号:25
server=smtplib.SMTP_SSL("smtp.exmail.qq.com", 465)
# 登录服务器,括号中对应的是发件人邮箱账号、邮箱密码
server.login(my_sender, my_pass)
# 发送邮件,括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(my_sender,[my_user,],msg.as_string())
# 关闭连接
server.quit()
# 如果 try 中的语句没有执行,则会执行下面的 ret=False
except Exception:
ret=False
return ret
ret=mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")
未测试版本
#-*- coding: UTF-8 -*-
from email.header import Header
from email.mime.text import MIMEText
from email.utils import formataddr
import smtplib
# 用户信息
from_addr = 'guozh@paraview.cn'
password = 'H3Sv73Gq4BV7XDqG' # # 腾讯QQ邮箱或腾讯企业邮箱必须使用授权码进行第三方登陆
to_addr = ''
smtp_server = 'smtp.exmail.qq.com' # 腾讯服务器地址
# 内容初始化,定义内容格式(普通文本,html)
msg = MIMEText('我要发邮件......', 'plain', 'utf-8')
# 发件人收件人信息格式化 ,可防空
# 固定用法不必纠结,我使用lambda表达式进行简单封装方便调用
lam_format_addr = lambda name, addr: formataddr((Header(name, 'utf-8').encode(), addr))
# 传入昵称和邮件地址
msg['From'] = lam_format_addr('发件人昵称', from_addr) # 腾讯邮箱可略
msg['To'] = lam_format_addr('收件人昵称(服务商会自动替换成用户名)', to_addr) # 腾讯邮箱可略
# 邮件标题
msg['Subject'] = Header('邮件的标题......', 'utf-8').encode() # 腾讯邮箱略过会导致邮件被屏蔽
# 服务端配置,账密登陆
server = smtplib.SMTP(smtp_server, 25)
# 腾讯邮箱支持SSL(不强制), 不支持TLS。
# server = smtplib.SMTP_SSL(smtp_server, 465) # 按需开启
# 调试模式,打印日志
# server.set_debuglevel(1) # 按需开启
# 登陆服务器
server.login(from_addr, password)
# 发送邮件及退出
server.sendmail(from_addr, [to_addr], msg.as_string()) #发送地址需与登陆的邮箱一致
server.quit()
网友评论