发送邮件是我们在开发中经常遇到的需求,Python提供了smtplib和email模块来方便我们发送邮件。本文将介绍如何使用这两个模块进行邮件发送。
在使用smtplib发送邮件前,我们需要知道邮件服务器的地址、端口号、发送方的邮箱地址及密码。以下是一个简单的发送邮件的Python程序:
import smtplib from email.mime.text import MIMEText mail_host = "smtp.163.com" # 邮件服务器地址 mail_user = "sender@163.com" # 发送方邮箱地址 mail_pass = "password" # 发送方邮箱密码 to_email_list = ["receiver1@qq.com", "receiver2@163.com"] # 接收方邮箱地址列表 message = MIMEText("邮件正文内容", 'plain', 'utf-8') # 邮件内容 message['Subject'] = "邮件主题" # 邮件主题 message['From'] = mail_user # 发送方邮箱地址 message['To'] = ",".join(to_email_list) # 接收方邮箱地址列表 smtpObj = smtplib.SMTP() # 创建SMTP对象 smtpObj.connect(mail_host, 25) # 连接邮件服务器 smtpObj.login(mail_user, mail_pass) # 登录邮件服务器 smtpObj.sendmail(mail_user, to_email_list, message.as_string()) # 发送邮件 smtpObj.quit() # 退出邮件服务器
上述代码中,我们首先导入smtplib和email.mime.text模块,然后指定邮件服务器地址、发送方邮箱地址及密码、接收方邮箱地址列表、邮件主题和内容。我们使用smtplib.SMTP()创建SMTP对象,然后使用connect()方法连接邮件服务器,使用login()方法登录邮件服务器,最后使用sendmail()方法发送邮件。发送成功后,使用quit()方法退出邮件服务器。
在上述代码中,我们使用了email.mime.text模块来构造邮件内容。实际上,email模块提供了更多的邮件类型,例如MIMEImage、MIMEMultipart等。以下是一个使用MIMEMultipart构造带附件的邮件的Python程序:
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage mail_host = "smtp.163.com" # 邮件服务器地址 mail_user = "sender@163.com" # 发送方邮箱地址 mail_pass = "password" # 发送方邮箱密码 to_email_list = ["receiver1@qq.com", "receiver2@163.com"] # 接收方邮箱地址列表 message = MIMEMultipart() # 创建MIMEMultipart对象 message['Subject'] = "邮件主题" # 邮件主题 message['From'] = mail_user # 发送方邮箱地址 message['To'] = ",".join(to_email_list) # 接收方邮箱地址列表 # 构造邮件正文内容 text = MIMEText("邮件正文内容", 'plain', 'utf-8') message.attach(text) # 构造附件 with open("attachment.png", "rb") as f: img = MIMEImage(f.read()) img.add_header('Content-Disposition', 'attachment', filename="attachment.png") message.attach(img) smtpObj = smtplib.SMTP() # 创建SMTP对象 smtpObj.connect(mail_host, 25) # 连接邮件服务器 smtpObj.login(mail_user, mail_pass) # 登录邮件服务器 smtpObj.sendmail(mail_user, to_email_list, message.as_string()) # 发送邮件 smtpObj.quit() # 退出邮件服务器
上述代码中,我们使用了MIMEMultipart对象构造邮件,其中包括邮件正文和附件。我们使用open()方法打开附件文件,然后使用MIMEImage对象构造附件,最后使用add_header()方法指定附件的文件名和类型,并使用attach()方法将附件添加到邮件中。
本文介绍了如何使用Python中的smtplib和email模块进行邮件发送,重点讲解了如何使用smtplib发送邮件和如何使用email模块构造邮件。希望本文能够帮助编程小白学习Python发送邮件的相关知识。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com