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']) #邮件正文,附件如果只有一个的话,用字符串就行