在Python3中,发送包含二进制数据的电子邮件可以使用email
和smtplib
库。以下是一个示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email.utils import COMMASPACE
from email import encoders
# 邮件发送者和接收者的邮箱地址
sender_email = "sender@example.com"
receiver_email = "receiver@example.com"
# 初始化MIMEMultipart对象
message = MIMEMultipart()
# 设置邮件发送者和接收者
message["From"] = sender_email
message["To"] = receiver_email
# 设置邮件主题和正文
message["Subject"] = "包含二进制数据的电子邮件"
message.attach(MIMEText("这是一个包含二进制数据的电子邮件", "plain"))
# 添加二进制数据
binary_data = b"这是二进制数据"
attachment = MIMEBase("application", "octet-stream")
attachment.set_payload(binary_data)
encoders.encode_base64(attachment)
attachment.add_header("Content-Disposition", "attachment", filename="binary_data.bin")
message.attach(attachment)
# 发送邮件
smtp_server = "smtp.example.com"
smtp_port = 587
smtp_username = "username"
smtp_password = "password"
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(sender_email, receiver_email, message.as_string())
在这个示例中,我们使用了email
库来创建一个包含二进制数据的邮件,并使用smtplib
库来发送邮件。我们首先创建了一个MIMEMultipart
对象,并设置了邮件的发送者、接收者、主题和正文。然后,我们创建了一个MIMEBase
对象,并使用encoders
模块将其编码为Base64格式。最后,我们使用SMTP
对象发送邮件。
请注意,这个示例中的邮件服务器和登录凭据需要替换为您自己的。
领取专属 10元无门槛券
手把手带您无忧上云