找回密码
 会员注册
查看: 35|回复: 0

Python自动发送邮件:详细教程与示例代码

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71365
发表于 2024-9-9 18:31:17 | 显示全部楼层 |阅读模式
更多资料获取📚个人网站:ipengtao.com在现代社会中,自动发送邮件是一项非常有用的任务,无论是用于自动化报告的发送,还是用于通知、提醒等用途。Python提供了强大的库来实现自动发送邮件的功能,本文将详细介绍如何使用Python发送邮件,包括各种示例代码,帮助大家更好地理解和应用这一功能。准备工作在开始之前,确保已经完成以下准备工作:安装Python:确保计算机上安装了Python。可以从Python官方网站下载并安装最新版本的Python。邮件账户:需要一个可用的邮件账户,可以是Gmail、Outlook、Yahoo等电子邮件服务提供商的账户。安全性设置:如果使用的是Gmail,需要允许“较低安全性应用程序的访问”。这可以在Gmail账户设置中找到。使用smtplib库发送邮件Python的smtplib库是用于发送电子邮件的标准库之一。以下是一个基本示例,演示如何使用smtplib库发送简单的文本邮件:importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipart#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建邮件message=MIMEMultipart()message["From"]=sender_emailmessage["To"]=receiver_emailmessage["Subject"]="自动发送邮件示例"#添加邮件正文message.attach(MIMEText("这是一封自动发送的邮件。","plain"))#连接到SMTP服务器withsmtplib.SMTP("smtp.gmail.com",587)asserver:server.starttls()server.login(sender_email,password)server.sendmail(sender_email,receiver_email,message.as_string())print("邮件已发送成功!")12345678910111213141516171819202122232425在这个示例中,首先导入必要的模块,然后设置发件人、收件人和邮件主题。接下来,创建邮件正文,并使用smtplib库连接到SMTP服务器,然后登录并发送邮件。发送带附件的邮件如果需要发送带附件的邮件,可以使用MIME(MultipurposeInternetMailExtensions)来创建邮件。以下是一个示例,演示如何发送带附件的邮件:importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.mime.applicationimportMIMEApplication#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建邮件message=MIMEMultipart()message["From"]=sender_emailmessage["To"]=receiver_emailmessage["Subject"]="带附件的邮件示例"#添加邮件正文message.attach(MIMEText("这是一封带附件的邮件。","plain"))#添加附件withopen("附件文件.txt","rb")asattachment:part=MIMEApplication(attachment.read(),Name="附件文件.txt")part["Content-Disposition"]=f'attachment;filename="附件文件.txt"'message.attach(part)#连接到SMTP服务器withsmtplib.SMTP("smtp.gmail.com",587)asserver:server.starttls()server.login(sender_email,password)server.sendmail(sender_email,receiver_email,message.as_string())print("带附件的邮件已发送成功!")1234567891011121314151617181920212223242526272829303132在这个示例中,使用MIMEApplication来添加附件,并设置附件的文件名。然后,将附件添加到邮件中,发送邮件的过程与前一个示例相似。使用第三方库发送邮件除了smtplib库外,还有一些第三方库可以帮助你更轻松地发送邮件,例如yagmail和smtplib-cli。以下是一个使用yagmail库的示例:importyagmail#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建yagmail客户端yag=yagmail.SMTP(sender_email,password)#发送邮件subject="使用yagmail发送邮件示例"contents=["这是一封使用yagmail发送的邮件。"]yag.send(receiver_email,subject,contents)print("邮件已发送成功!")12345678910111213141516在这个示例中,首先安装yagmail库(使用pipinstallyagmail),然后创建yagmail客户端并使用它发送邮件。这个库提供了更简单的接口来发送邮件。发送HTML格式的邮件除了发送普通文本邮件,还可以发送HTML格式的邮件,以更好地格式化内容。以下是一个示例,演示如何发送HTML邮件:importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipart#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建邮件message=MIMEMultipart()message["From"]=sender_emailmessage["To"]=receiver_emailmessage["Subject"]="HTML格式的邮件示例"#添加HTML邮件内容html_content=""" 这是一封HTML格式的邮件 你可以在邮件中使用HTML标记来格式化内容。"""message.attach(MIMEText(html_content,"html"))#连接到SMTP服务器withsmtplib.SMTP("smtp.gmail.com",587)asserver:server.starttls()server.login(sender_email,password)server.sendmail(sender_email,receiver_email,message.as_string())print("HTML格式的邮件已发送成功!")1234567891011121314151617181920212223242526272829303132333435363738在这个示例中,创建了一个HTML邮件内容的字符串,并将其添加到邮件中。这样,收件人将以HTML格式看到邮件内容。发送带图片的邮件如果需要在邮件中嵌入图片,也可以很容易地实现。以下是一个示例,演示如何发送带图片的邮件:importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromemail.mime.imageimportMIMEImage#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建邮件message=MIMEMultipart()message["From"]=sender_emailmessage["To"]=receiver_emailmessage["Subject"]="带图片的邮件示例"#添加文本内容message.attach(MIMEText("这是一封带图片的邮件示例。","plain"))#添加图片withopen("image.png","rb")asimage_file:image=MIMEImage(image_file.read(),name="image.png")message.attach(image)#连接到SMTP服务器withsmtplib.SMTP("smtp.gmail.com",587)asserver:server.starttls()server.login(sender_email,password)server.sendmail(sender_email,receiver_email,message.as_string())print("带图片的邮件已发送成功!")12345678910111213141516171819202122232425262728293031在这个示例中,通过MIMEImage模块添加了一张图片,并将其嵌入到邮件中。这样,收件人将能够在邮件中看到图片。使用SMTP库发送邮件除了smtplib库外,还可以使用SMTP库来发送邮件。以下是一个使用SMTP库的示例:importsmtplib#发件人和收件人信息sender_email="你的邮箱@gmail.com"receiver_email="收件人邮箱@example.com"password="你的邮箱密码"#创建SMTP连接server=smtplib.SMTP("smtp.gmail.com",587)server.starttls()#登录到SMTP服务器server.login(sender_email,password)#创建邮件内容subject="SMTP库发送邮件示例"body="这是一封使用SMTP库发送的邮件。"message=f"Subject:{subject}\n\n{body}"#发送邮件server.sendmail(sender_email,receiver_email,message)#关闭SMTP连接server.quit()print("SMTP库发送的邮件已发送成功!")1234567891011121314151617181920212223242526在这个示例中,首先创建了SMTP连接,然后登录到SMTP服务器并发送邮件。这种方法也可以用来发送邮件。总结希望通过本文的详细教程和示例代码,现在已经学会了如何使用Python自动发送邮件,包括发送普通文本邮件、HTML邮件、带附件的邮件和带图片的邮件。自动发送邮件是一个非常有用的任务,可以帮助大家自动化通知、报告和通信。无论你是初学者还是有经验的开发者,都可以使用这些技巧来实现自动发送邮件的需求。Python学习路线更多资料获取📚个人网站:ipengtao.com如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取全方位学习资料包。点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-9 20:21 , Processed in 0.430936 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表