34 lines
2.0 KiB
Python
34 lines
2.0 KiB
Python
import smtplib as sl #导入内置模块smtplib,通过该模块的类SMTP_SSL,创建了一个实例对象qqMail
|
|
from email.mime.multipart import MIMEMultipart # email模块的类MIMEMultipart,可以整合邮件头、正文和附件等信息
|
|
from email.header import Header #email模块的类Header,用于设置邮件头,即邮件的主题,收发件人
|
|
from email.mime.text import MIMEText #构建邮件正文,需要从email.mime.text中导入MIMEText类示例中,为导入MIMEText类的固定写法
|
|
from email.mime.image import MIMEImage #设置图片附件,需要从email.mime.image中导入MIMEImage类
|
|
|
|
#收发件人和基本设置
|
|
qqMail = sl.SMTP_SSL("smtp.qq.com", 465)
|
|
mailName = "xiangtian_030611@qq.com"
|
|
mailPassword = "svqketybpfmnbigg" #QQ邮箱授权码
|
|
qqMail.login(mailName , mailPassword)
|
|
sender = "xiangtian_030611@qq.com" #发件人
|
|
receiver = "136733984@qq.com" #收件人
|
|
#正文
|
|
message = MIMEMultipart()
|
|
message["Subject"] = Header("Python")
|
|
message["From"] = Header(f"Python<{sender}>")
|
|
message["To"] = Header(f"Xiangtian<{receiver}>")
|
|
textWord = "这是一个Python程序"
|
|
mailStyle = MIMEText(textWord,"plain","utf-8") #第一个参数是文本内容,即我们需要发送邮件的正文内容;
|
|
#第二个参数是文本格式,表示我们的正文内容以何种格式展示;
|
|
#第三个参数是编码。"utf-8"编码,能防止中文乱码
|
|
#图片附件
|
|
filePath = r"/home/xt/桌面/cheshire.jpg"
|
|
with open(filePath, "rb") as imageFile: #第一个参数是路径(路径前面加r来防止转义);第二个参数是打开方式,用特定的字符串表示
|
|
fileContent = imageFile.read()
|
|
attachment = MIMEImage(fileContent)
|
|
attachment.add_header("Content-Disposition", "attachment", filename="cheshire.jpg") #设置附件标题
|
|
#将正文和附件加入到邮件中
|
|
message.attach(mailStyle)
|
|
message.attach(attachment)
|
|
#发送
|
|
qqMail.sendmail(sender, receiver, message.as_string())
|