首页 > 编程语言 >python mimetext 参数

python mimetext 参数

时间:2023-09-22 17:36:26浏览次数:44  
标签:python text image 参数 mimetext import data 邮件 MIMEText

Python mimetext参数详解

在Python3中,使用mimetext模块可以轻松地创建电子邮件消息。在发送电子邮件时,我们需要设置邮件的主题、收件人、发件人、正文和附件等信息。而mimetext模块就是用来处理邮件中的文本和附件的。本文将详细介绍mimetext模块中的参数及其用法。

安装步骤

pip3 install smtplib #安装模板

最后实例代码会用到 smtplib

1.MIMEText类

MIMEText类用来创建邮件的正文,它有三个参数:

  • _text:邮件正文内容,可以是纯文本或HTML格式。

  • _subtype:邮件正文内容的类型,可以是"plain"(纯文本)、"html"(HTML格式)。

  • _charset:邮件正文内容的编码方式,常用的有"utf-8"、"gbk"等。

代码如下:


from email.mime.text import MIMEText

# ----------方法1
msg = MIMEText('测试邮件。收到请不用回复', 'plain', 'utf-8')

# -----------方法2
content = '''
 <p>我的地址:</p>
 <p><a href='http://hldaig.xyz/'>点击进入我的</a></p>
 <p>我的公众号二维码:</p>
 <p><img src="cid:image"></p>
 '''
html = MIMEText(content, 'html', 'utf-8')

2.MIMEImage类

MIMEImage类用来创建邮件中的图片,它有两个参数:

  • _imagedata:图片的二进制数据。

  • _subtype:图片的类型,可以是"jpeg"、"gif"、"png"等。

示例代码:


from email.mime.image import MIMEImage
#-----------方法1
with open('test.jpeg', 'rb') as f:
    image_data = f.read()
msg = MIMEImage(image_data, 'jpeg')
# ----------方法2
with open('test.gif', 'rb') as f:
    image_data = f.read()
msg = MIMEImage(image_data, 'gif')
# ---------方法3
with open('test.png', 'rb') as f:
    image_data = f.read()
msg = MIMEImage(image_data, 'png')

  1. MIMEAudio类

MIMEAudio类用来创建邮件中的音频文件,它有两个参数:

  • _audiodata:音频文件的二进制数据。

  • _subtype:音频文件的类型,可以是"mp3"、"wav"等。

示例代码:


from email.mime.audio import MIMEAudio

with open('test.mp3', 'rb') as f:

    audio_data = f.read()

msg = MIMEAudio(audio_data, 'mp3')

  1. MIMEBase类

MIMEBase类是所有MIME类型的基类,它有四个参数:

  • _maintype:MIME类型的大类,常见的有"text"、"image"、"audio"、"video"、"application"等。

  • _subtype:MIME类型的子类,如"text/plain"、"image/jpeg"、"audio/mp3"等。

  • _encoder:编码方式,可以是"base64"、"quoted-printable"等。

  • _payload:MIME类型的内容,可以是文本、图片、音频、视频等。

示例代码:


from email.mime.base import MIMEBase

with open('test.pdf', 'rb') as f:

    pdf_data = f.read()

msg = MIMEBase('application', 'octet-stream')

msg.set_payload(pdf_data)

  1. 添加附件

添加附件时需要使用MIMEMultipart类,它有一个attach()方法可以添加邮件中的附件。用smtplib模块发送示例代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage


# 发送者邮箱地址
senderMail = '[email protected]'
# 发送者 QQ 邮箱授权码
authCode = 'xxxxxxxxx'
# 接收者邮箱地址
receiverMail = '[email protected]'

# 附件路径
attach_file = r'..\test.py'
# 附件名称
filenames =  'test.py'

subject = '复杂邮件测试'
msgRoot = MIMEMultipart('related')
msgRoot['Subject'] = subject
msgRoot['From'] = senderMail
msgRoot['To'] = receiverMail
msgAtv = MIMEMultipart('alternative')
msgRoot.attach(msgAtv)

content = '简单测试内容,收到不用回复'
html = MIMEText(content, 'plain', 'utf-8')
msgAtv.attach(html)

# 构造附件
send_file = open(attach_file, 'rb').read()
text_att = MIMEText(send_file, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
# 重命名附件文件
text_att.add_header('Content-Disposition', 'attachment', filename=filenames)

try:
    server = smtplib.SMTP_SSL('smtp.qq.com', smtplib.SMTP_SSL_PORT)
    print('成功连接到邮件服务器')
    server.login(senderMail, authCode)
    print('成功登录邮箱')
    server.sendmail(senderMail, receiverMail, msgRoot.as_string())
    print('邮件发送成功')
except smtplib.SMTPException as e:
    print('邮件发送异常')
finally:
    server.quit()

标签:python,text,image,参数,mimetext,import,data,邮件,MIMEText
From: https://www.cnblogs.com/data-Zero/p/17722968.html

相关文章

  • Python——24days
    序列化模块pickle模块hashilb模块(加密)————————————————————————————————————————————————什么是序列化?什么是序列? 序列就是字符串序列化是把其他数据类型转为json字符串的过程什么是反序列化? 把json字符串转为其他数......
  • 实验1:SDN拓扑实践进阶部分(使用python循环语句)
    #!/usr/bin/envpythonfrommininet.topoimportTopoclassMyTopo(Topo): def__init__(self): Topo.__init__(self) #host foriinrange(1,9): self.addHost("h"+str(i)) #switch foriinrange(1,11): self.addSwitch("s&quo......
  • 【Python】递归算法
    定义递归是一种解决问题的有效方法,在递归过程中,函数将自身作为子例程调用。思想函数调用函数本身,直到不能调用为止注意事项基本情况用于保证程序调用及时返回,不在继续递归,保证了程序可终止。递推关系,可将所有其他情况拆分到基本案例。​递推关系​:一个问题的结......
  • python问题汇总
    执行python文件报错:File"E:/ProgramFiles(x86)/PyCharm2021.1/fmz_zp/Python/基础/test.py",line531SyntaxError:Non-UTF-8codestartingwith'\xe4'infileE:/ProgramFiles(x86)/PyCharm2021.1/fmz_zp/Python/基础/test.pyonline531,butnoe......
  • appium+Python封装日志类
    创建logger.py文件放置在框架目录Common文件夹下,logger.py代码如下:#_*_coding:utf-8_*_importloggingimporttimeclassLogger(object):def__init__(self,logger):self.logger=logging.getLogger(logger)self.logger.setLevel(logging.DE......
  • Python 实现Word转PDF
    通过将Word文档转换为PDF,您可以确保文档在不同设备上呈现一致,并防止其他人对文档内容进行非授权修改。此外,在你需要打印文档时,转换为PDF还能确保打印输出的准确性。本文将介绍如何使用Python库将Word文档转换为PDF格式。Python将WordDOCX/DOC转换为PDFPython将Word......
  • Python,OpenCV的图像直角坐标系转极坐标系的函数
    Hough圆检测获取瓶口位置和大小'''hough圆变换'''cimg=cv2.cvtColor(bottle,cv2.COLOR_GRAY2BGR)#转换成彩色图circles=cv2.HoughCircles(median,cv2.HOUGH_GRADIENT,1,100,param1=100,param2=60,minRadius=150,maxRadius=160)......
  • 利用Python从现有的Excel表格中复制指定列生成新的Excel文件
    importxlrdimportxlwtimportpatternsaspatternsfile1='通讯专线汇总统计表.xls'file2='附件:历史存量邮电费明细.xls'data1=xlrd.open_workbook(file1)table1=data1.sheet_by_index(0)nrows1=table1.nrowszx_infos=[]#读取“通讯专线汇总统计表.xls”文件中......
  • 【Python爬虫】批量爬取豆瓣电影排行Top250
    ​    今天给大家分享下我刚开始接触Python时学习的爬虫程序,代码部分很简单,不过当时刚开始学习时还是走了不少弯路的。这个爬虫程序应该是很多书里面的入门练手程序,主要就是去豆瓣爬取电影评分排行前250。        本篇文章只做学习交流使用,不涉及任何商业用途......
  • python中,如何优雅的解析和管理命令行参数
    背景我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能。那么如何获取命令行传入进来的参数呢?一般方法一般情况下,我们会使用sys模块,如......