python多种SMTP邮件格式发送

文本类邮件

# -*- encoding: utf-8 -*-
# @Author : Running_Tiger 
# @File   : sendmail.py 
# @Time   : 2020/11/3 0:25

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

# 第三方 SMTP 服务
mail_host = "smtp.163.com"  # 设置服务器
mail_user = "XXX@163.com"  # 用户名
mail_pass = "XXX"  # 口令

sender = 'st_XXX@163.com' # 发送者
receivers = ['XXX@163.com','XXX@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

message = MIMEText('这是一个内部告警通知,请看到的运维人员及时处理', 'plain', 'utf-8') # 邮件内容,格,编码
message['From'] = "Running_Tiger" # 发送者
message['To'] = "CSDN" # 接收者
# 163的from和to使用字符串,其他邮箱可以使用下面方式
# message['From'] = Header("Running_Tiger", 'utf-8')   # 发送者
# message['To'] =  Header("CSDN", 'utf-8')        # 接收者

subject = 'Running_Tiger告警邮件' # 邮件主题
message['Subject'] = Header(subject, 'utf-8')

# 发送邮件
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string()) # 开始发送邮件
    print("邮件发送成功")

except smtplib.SMTPException as e:
    print(e)
    print("Error: 无法发送邮件")

HTML类邮件

在构造MIMEText对象时,把HTML字符串传进去,再把第二个参数由plain变为html

# -*- encoding: utf-8 -*-
# @Author : Running_Tiger 
# @File   : sendmail.py 
# @Time   : 2020/11/3 0:30

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

# 第三方 SMTP 服务
mail_host = "smtp.163.com"  # 设置服务器
mail_user = "XXX@163.com"  # 用户名
mail_pass = "XXX"  # 口令

sender = 'st_XXX@163.com' # 发送者
receivers = ['XXX@163.com','XXX@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="https://blog.csdn.net/qq_41455420">Running_Tiger博客主页</a></p>
"""
message = MIMEText(mail_msg , 'html', 'utf-8') # 邮件内容,格式,编码
message['From'] = "Running_Tiger" # 发送者
message['To'] = "CSDN" # 接收者

subject = 'Running_Tiger告警邮件2' # 邮件主题
message['Subject'] = Header(subject, 'utf-8')

# 发送邮件
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string()) # 开始发送邮件
    print("邮件发送成功")

except smtplib.SMTPException as e:
    print(e)
    print("Error: 无法发送邮件")

附件类邮件

发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

# -*- encoding: utf-8 -*-
# @Author : Running_Tiger 
# @File   : sendmail.py 
# @Time   : 2020/11/3 0:40

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

# 第三方 SMTP 服务
mail_host = "smtp.163.com"  # 设置服务器
mail_user = "XXX@163.com"  # 用户名
mail_pass = "XXX"  # 口令

sender = 'st_XXX@163.com' # 发送者
receivers = ['XXX@163.com','XXX@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

#创建一个带附件的实例
message = MIMEMultipart()
#邮件正文内容
message.attach(MIMEText('带附件邮件发送测试……', 'plain', 'utf-8'))
message['From'] = "Running_Tiger" # 发送者
message['To'] = "CSDN" # 接收者

subject = 'Running_Tiger告警邮件2' # 邮件主题
message['Subject'] = Header(subject, 'utf-8')

# 构造附件1,传送当前目录下的 test.txt 文件
att = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
# 这里的filename可以任意写,写什么名字,邮件中显示什么名字
att["Content-Disposition"] = 'attachment; filename="test.txt"'
# 附件添加进邮件
message.attach(att1)

# 发送邮件
try:
    smtpObj = smtplib.SMTP()
    smtpObj.connect(mail_host, 25)  # 25 为 SMTP 端口号
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string()) # 开始发送邮件
    print("邮件发送成功")

except smtplib.SMTPException as e:
    print(e)
    print("Error: 无法发送邮件")

SSL加密邮件

QQ 邮箱 SMTP 服务器地址:smtp.qq.com ssl 端口:465
163邮箱 SMTP 服务器地址:smtp.163.com ssl 端口:465
旧阿里邮箱 SMTP 服务器地址:smtp.mxhichina.com ssl 端口:465
新阿里邮箱 SMTP 服务器地址:smtp.qiye.aliyun.com ssl 端口:465

# -*- encoding: utf-8 -*-
# @Author : Running_Tiger 
# @File   : sendmail.py 
# @Time   : 2020/11/3 0:50

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

# 第三方 SMTP 服务
mail_host = "smtp.163.com"  # 设置服务器
mail_user = "XXX@163.com"  # 用户名
mail_pass = "XXX"  # 口令

sender = 'st_XXX@163.com' # 发送者
receivers = ['XXX@163.com','XXX@qq.com']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

message = MIMEText('这是一个内部告警通知,请看到的运维人员及时处理', 'plain', 'utf-8') # 邮件内容,格,编码
message['From'] = "Running_Tiger4" # 发送者
message['To'] = "CSDN" # 接收者

subject = 'Running_Tiger告警邮件' # 邮件主题
message['Subject'] = Header(subject, 'utf-8')

# 发送邮件
try:
    smtpObj = smtplib.SMTP_SSL(mail_host,465) # 创建对象和常规有区别哦!
    smtpObj.login(mail_user, mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string()) # 开始发送邮件
    print("邮件发送成功")

except smtplib.SMTPException as e:
    print(e)
    print("Error: 无法发送邮件")

喜欢就点赞评论+关注吧

在这里插入图片描述

感谢阅读,希望能帮助到大家,谢谢大家的支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值