腾讯企业邮箱smtp发邮件

image.png

MGXJMWJDEMNVUGQN

腾讯企业邮箱发邮件通知(python脚本):

可读文件的版本

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

# 发件人邮箱账号
my_sender='[email protected]'
# user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功  
my_pass = 'Hao124'
# 收件人邮箱账号            
my_user='[email protected]'
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(["[email protected]",my_sender])
        # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['To']=formataddr(["[email protected]",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='[email protected]'
# user登录邮箱的用户名,password登录邮箱的密码(授权码,即客户端密码,非网页版登录密码),但用腾讯邮箱的登录密码也能登录成功  
my_pass = 'Hao124'
# 收件人邮箱账号            
my_user='[email protected]'
def mail():
    ret=True
    try:
        # 邮件内容
        msg=MIMEText('..........。 ','plain','utf-8')
        # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['From']=formataddr(["[email protected]",my_sender])
        # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['To']=formataddr(["[email protected]",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 = '[email protected]'
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()

你可能感兴趣的:(腾讯企业邮箱smtp发邮件)