在日常工作和生活中,发送邮件是一项必要的工作。Python发送邮件可以自动化实现发送邮件的操作,提高工作效率。以下是Python发送邮件的详细步骤。
Python发送邮件需要用到smtplib库和email库。smtplib库用于连接SMTP服务器,并发送邮件;email库用于构建邮件内容。因此,需要将这两个库导入到Python脚本中。
import smtplib from email.mime.text import MIMEText from email.header import Header
在Python发送邮件时,需要设置发件人、收件人和邮件内容三个基本要素。发件人和收件人应为有效的邮件地址,在实际应用中,可以由程序自动化获取这些地址;邮件内容可以设置为一段文本、一张图片或一个HTML页面等。
# 发件人和收件人的邮箱地址 sender = 'your_email@example.com' receiver = 'receiver_email@example.com' # 邮件主题和内容 subject = '邮件主题' content = '邮件正文'
使用email库中的MIMEText方法创建邮件对象,然后设置相关属性,如发件人、收件人、主题和内容等。需要注意的是,字体编码应设置为'utf8'。
# 创建邮件对象 message = MIMEText(content, 'plain', 'utf8') message['From'] = Header(sender, 'utf8') message['To'] = Header(receiver, 'utf8') message['Subject'] = Header(subject, 'utf8')
要发送邮件,需要先登录SMTP服务器,并配置相关信息,如SMTP服务器地址、端口号、用户名和密码等。然后使用smtplib库中的SMTP方法连接SMTP服务器,发送邮件。如果发送成功,会在控制台输出相应的信息;否则,会捕获SMTPException异常,并输出错误信息。
# 邮箱服务器地址和端口 smtp_server = 'smtp.example.com' smtp_port = 587 # 邮箱账号和密码 username = 'your_email@example.com' password = 'your_email_password' # 登录邮箱服务器并发送邮件 try: smtp_obj = smtplib.SMTP(smtp_server, smtp_port) smtp_obj.starttls() smtp_obj.login(username, password) smtp_obj.sendmail(sender, [receiver], message.as_string()) print("邮件发送成功") except smtplib.SMTPException as e: print("Error: 无法发送邮件", e) finally: smtp_obj.quit()
将以上代码整合到一个Python文件中,替换相应的邮箱地址、服务器地址、端口、用户名和密码,然后运行即可发送邮件。
在邮件内容中添加图片,可以增加邮件的吸引力和可读性。使用Unsplash API可以从网络上获取一些优美的图片,然后将其添加到邮件内容中。
# 导入requests库 import requests # Unsplash API查询参数 query = 'nature' # 构建URL url = 'https://source.unsplash.com/600x337/?' + query # 获取图片 response = requests.get(url) image = response.content # 添加图片到邮件中 message_image = MIMEImage(image, name=query + '.jpg') message_image.add_header('Content-ID', '<' + query + '>') message.attach(message_image)
Python发送邮件可以使用smtplib库和email库,需要设置发件人、收件人和邮件内容三个基本要素。可以使用Unsplash API查询优美的图片,然后将其添加到邮件中,提高邮件的吸引力和可读性。
如果你有什么问题或建议,请在评论区留言,感谢你的观看和支持!
如果你喜欢这篇文章,可以点赞、分享、关注和感谢!