Python发送邮件

Python发送邮件

在Python中,我们可以使用smtplib库来发送电子邮件。smtplib是Python标准库中的一部分,它提供了一个简单的接口来连接到邮件服务器并发送电子邮件。

步骤1:导入必要的库

首先,我们需要导入smtplib库以及其他必要的库。以下是导入所需库的代码:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

步骤2:设置邮件内容

接下来,我们需要设置邮件的内容。我们可以使用MIMEText类来设置纯文本邮件,或者使用MIMEMultipart类来设置带有附件的邮件。

以下是一个设置纯文本邮件内容的示例:

subject = "Hello from Python"
body = "This is a test email sent using Python."
sender_email = "[email protected]"
receiver_email = "[email protected]"

message = MIMEText(body, "plain")
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email

步骤3:连接到邮件服务器并发送邮件

现在,我们可以连接到邮件服务器并发送邮件。我们需要提供邮件服务器的主机名和端口号,以及发件人和收件人的电子邮件地址。

以下是一个发送邮件的示例:

smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_username"
password = "your_password"

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(username, password)
    server.sendmail(sender_email, receiver_email, message.as_string())

在上面的示例中,我们使用starttls()方法启用了安全传输层(TLS)加密,然后使用login()方法登录到邮件服务器。最后,我们使用sendmail()方法发送邮件。

完整代码示例

以下是一个完整的Python代码示例,演示了如何发送带有附件的邮件:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

subject = "Hello from Python"
body = "This is a test email sent using Python."
sender_email = "[email protected]"
receiver_email = "[email protected]"

message = MIMEMultipart()
message["Subject"] = subject
message["From"] = sender_email
message["To"] = receiver_email

message.attach(MIMEText(body, "plain"))

# 添加附件
filename = "example.txt"
attachment = open(filename, "rb")

part = MIMEBase("application", "octet-stream")
part.set_payload(attachment.read())
attachment.close()

part.add_header(
    "Content-Disposition",
    f"attachment; filename= {filename}",
)

message.attach(part)

smtp_server = "smtp.example.com"
smtp_port = 587
username = "your_username"
password = "your_password"

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(username, password)
    server.sendmail(sender_email, receiver_email, message.as_string())

以上就是使用Python发送邮件的基本步骤。你可以根据自己的需求进行修改和扩展。希望这篇文章对你有所帮助!

你可能感兴趣的:(python,服务器,邮件)