Python 发送邮件

本文介绍了使用Python的smtplib模块发送邮件,包括SMTP类的主要函数及其用法,如SMTP.login()和SMTP.sendmail()。同时,提到了email模块用于处理复杂的邮件内容,如MIMEMultipart、MIMEText等类。文章还阐述了MIME类型在邮件中的作用和常见MIME类型的示例。
摘要由CSDN通过智能技术生成

用Python来发送邮件还是蛮有趣的一件事,python为我们提供了这样一个模块,可以方便的发送电子邮件,先来总结一下

 

1.      SMTP和HTTP类似。都是头里面有一些相关信息,content-type ,encoding等。Message是基类。用字典映射的方式可以读取和设置head中选项的值。MIMEText,MIMEImage,MIMEAudio等MIME类型继承自MIMEBase,MIMEBase继承自Message。他们都没有自己定义方法,都是用Message的。MIMEMultipart可以通过attach添加多个MIME的文件。所以用它添加附件

2.      不同附件文件类型不同,head里面有个Content-Disposition的选项,可以设置文件类型。要上传不同文件类型,就要让python通过mimestypes.guess_type()识别文件类型

3.      读取二进制文件的时候,打开方式要为"rb",因为可能会有和EOF编码相同的字节。这样python认为找到了文件的结尾,停止读入。

4.      lambda: 随时定义一个函数,避免许多单行的函数定义


下面看代码吧

__author__ = 'MrChen'

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

msg = MIMEMultipart('alternative')
msg['From'] = "xxxxxxxx@163.com"
msg['To'] = 'xxxxxxxx@qq.com'
msg['Subject'] = 'Email for testing'

#添加邮件内容
text = MIMEText('content')
msg.attach(text)

#添加二进制附件
fileName = r'C:\Users\a\Pictures\lovewallpaper\001.jpg'#选择你自己的文件
fileType, encoding = mimetypes.guess_type(fileName)
if fileType is None or encoding is not None:
    fileType = 'application/octet-stream'
print(fileType, encoding)
maintype, subtype = fileType.split('/', 1)
att1 = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)
#发送的文件名需要把路径去掉,给别人的邮件没必要让别人看到
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值