📅  最后修改于: 2023-12-03 15:34:31.129000             🧑  作者: Mango
Python电子邮件模块(也称为smtplib模块)是Python中一个强大的工具,它可以用于向所有邮箱发送电子邮件。该模块已经内置于Python中,因此无需安装即可使用。您可以使用此模块轻松地使用Python编写脚本来处理您的电子邮件需求。
以下代码片段可以帮助您轻松发送电子邮件。
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 设置发送者的邮箱地址和密码
sender_email_address = "your_email_address"
sender_email_password = "your_email_password"
# 设置接收者的邮箱地址
receiver_email_address = "receiver_email_address"
# 创建一个带附件的邮件消息
message = MIMEMultipart()
message["From"] = sender_email_address
message["To"] = receiver_email_address
message["Subject"] = "Python电子邮件"
# 添加文本部分
message.attach(MIMEText("这是Python电子邮件发送的文本部分", "plain"))
# 添加附件部分
attachment = open("example.txt", "rb").read()
part = MIMEApplication(attachment, Name="example.txt")
part["Content-Disposition"] = 'attachment; filename="example.txt"'
message.attach(part)
# 发送邮件
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as smtp:
smtp.login(sender_email_address, sender_email_password)
smtp.sendmail(sender_email_address, receiver_email_address, message.as_string())
该代码使用MIMEMultipart对象创建带有文本和附件的邮件。请在代码中设置自己的发件人和收件人电子邮件,并登录您的发件人电子邮件以发送电子邮件。
如果您希望使用Python接收电子邮件,则可以使用IMAP协议。
以下是一个接收电子邮件的代码片段:
import imaplib
import email
# 设置邮箱地址和密码
email_address = "your_email_address"
email_password = "your_email_password"
# 登录邮箱并选择收件箱
mail = imaplib.IMAP4_SSL("imap.gmail.com", 993)
mail.login(email_address, email_password)
mail.select("inbox")
# 搜索邮件,并获取邮件UID
_, search_data = mail.search(None, "ALL")
email_uids = search_data[0].split()
# 获取最新邮件的UID
latest_email_uid = email_uids[-1]
# 获取最新邮件
_, message_data = mail.fetch(latest_email_uid, "(RFC822)")
raw_email = message_data[0][1]
# 解析原始电子邮件内容
email_message = email.message_from_bytes(raw_email)
# 获取电子邮件主题、发件人和正文
subject = email_message['subject']
sender = email.utils.parseaddr(email_message['from'])[1]
body = ""
if email_message.is_multipart():
for part in email_message.walk():
content_type = part.get_content_type()
content_disposition = str(part.get("Content-Disposition"))
try:
body = part.get_payload(decode=True).decode()
except:
pass
else:
content_type = email_message.get_content_type()
try:
body = email_message.get_payload(decode=True).decode()
except:
pass
# 输出电子邮件主题、发件人和正文
print("Subject:", subject)
print("From:", sender)
print("Body:", body)
该代码使用IMAP4_SSL对象连接到您的电子邮件服务提供商并选择收件箱,然后搜索所有电子邮件。使用fetch()方法获取最新的电子邮件,并使用email模块解析电子邮件的主题、发件人和正文。
无论您是想发送电子邮件还是接收电子邮件,Python电子邮件模块都是解决电子邮件需求的好工具。