1、使用smtplib发送邮件
1)安装smtplib
pip install PyEmail
2)使用代码
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
sender = 'cjavapy@qq.com'
receivers = ['cjavapy@163.com'] # 收件人,多人的话便可把邮箱添加到收件人列表中
mail_host = 'smtp.qq.com' # 设置邮箱服务器
mail_user = 'cjavapy' # 登录的qq邮箱名
mail_pass = '**********' # 使用的qq邮箱发送邮件,为qq邮箱的授权码,非密码,可在网页的邮箱设置中开通,其它邮箱也类似
# 创建一个带附件的实例
message = MIMEMultipart()
message['From'] = Header("显示的发件人名称", 'utf-8')
message['To'] = Header("显示的收件人的名称", 'utf-8')
subject = '这是邮件主题'
message['Subject'] = Header(subject, 'utf-8')
# 邮件正文内容
message.attach(MIMEText('邮件正文内容:学习Python编程!!!', 'plain', 'utf-8'))
# 如有附件,参考下面方法,添加附件
att1 = MIMEText(open('outfile/cjavapy.txt', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
# 此处filename可以随意填写,填写的内容就是邮件中的显示
att1["Content-Disposition"] = 'attachment; filename="cjavapy.txt"; encoding="utf-8"'
message.attach(att1)
# 如果还有其他附件,可以继续按照附件1的添加方式继续添加
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 587) # 587 为 SMTP 端口号
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
print("邮件发送成功")
except smtplib.SMTPException as e:
print(e)
print("Error: 无法发送邮件")
2、使用zmail发送邮件
1)安装zmail
pip install zmail
2)使用代码
import zmail
mail = {
'subject': '这是邮件主题', # 发送的邮件的标题
'content_text': '邮件正文内容:学习Python编程!!!', #你想要发送的邮件的内容
'from':'Boss <mymail@foo.com>', # 发送人的名称(可选参数)
'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'], # 发送的附件(可选参数)
}
mail_pass = '**********' # 使用的qq邮箱发送邮件,为qq邮箱的授权码,非密码,可在网页的邮箱设置中开通,其它邮箱也类似
server = zmail.server('发送邮箱地址yourmail@example.com', mail_pass)
#发送单个邮件
server.send_mail('yourfriend@example.com', mail)
#群发邮件
server.send_mail(['yourfriend@example.com','12345@example.com'], mail)
#群发邮件并为某个邮件单独设置发送人名称
server.send_mail([('发送人名称','yourfriend@example.com'),'12345@example.com'], mail)
#抄送邮件
server.send_mail(['单独发送的邮箱foo@163.com','单独发送的邮箱2 foo@126.com'],mail,cc=[('发件人名字','抄送邮箱bar@163.com'),'抄送邮箱2'])
3、使用yagmail发送邮件
1)安装yagmail
pip install yagmail
2)使用代码
import yagmail
username = 'cjavapy@qq.com'
passwd = '**********' # 使用的qq邮箱发送邮件,为qq邮箱的授权码,非密码,可在网页的邮箱设置中开通,其它邮箱也类似
mail = yagmail.SMTP(user=username,
password=passwd,
host='smtp.qq.com',#其他服务器就smtp.qq.com smtp.126.com
smtp_ssl=True
) #如果用的是qq邮箱或者你们公司的邮箱使用是安全协议的话,必须写上 smtp_ssl=True
mail.send(
to=['to@qq.com',], #如果多个收件人的话,写成list就行了,如果只是一个账号,就直接写字符串就行to='username@qq.com'
cc='cc@qq.com',#抄送
subject='这是邮件主题',#邮件标题
contents='邮件正文内容:学习Python编程!!!',
attachments=['D:\a.txt','D:\b.txt']) #邮件正文,附件如果只有一个的话,用字符串就行