欢迎访问宙启技术站
智能推送

教你如何在Python中发送电子邮件(send_mail()函数详解)

发布时间:2024-01-10 10:19:50

在Python中,我们可以使用smtplib库来发送电子邮件。smtplib库是Python标准库中的一部分,可以与邮件传输代理(MTA)服务器进行通信,并发送电子邮件。

要发送电子邮件,您需要一个SMTP服务器的地址和端口号,您的邮箱地址和密码,以及您要发送的邮件的内容。

下面是一个名为send_mail()的函数,它接受以下参数:

- smtp_server:SMTP服务器地址。

- smtp_port:SMTP服务器端口号。默认情况下,使用587端口。

- email:您的邮箱地址。

- password:您的邮箱密码。

- recipient:收件人的邮箱地址。

- subject:邮件主题。

- message:邮件内容。

这个函数使用SMTP服务器创建一个连接,登录您的邮箱,构建一封包含收件人、发件人、主题和内容的邮件,然后发送邮件。

import smtplib
from email.mime.text import MIMEText
from email.header import Header

def send_mail(smtp_server, smtp_port, email, password, recipient, subject, message):
    # 创建邮件内容
    msg = MIMEText(message, 'plain', 'utf-8')
    msg['From'] = Header(email, 'utf-8')
    msg['To'] = Header(recipient, 'utf-8')
    msg['Subject'] = Header(subject, 'utf-8')

    # 创建SMTP服务器对象
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()  # 使用TLS加密连接
    server.login(email, password)  # 登录邮箱

    # 发送邮件
    server.sendmail(email, [recipient], msg.as_string())

    # 关闭服务器连接
    server.quit()

下面是一个使用send_mail()函数发送邮件的例子:

smtp_server = 'smtp.example.com'
smtp_port = 587
email = 'your_email@example.com'
password = 'your_password'
recipient = 'recipient@example.com'
subject = 'Hello'
message = 'This is a test email.'

send_mail(smtp_server, smtp_port, email, password, recipient, subject, message)

在这个例子中,SMTP服务器地址是smtp.example.com,端口号是587。您需要将your_email@example.com替换为您的邮箱地址,your_password替换为您的邮箱密码,recipient@example.com替换为收件人的邮箱地址。

这样,您就可以使用Python发送电子邮件了。通过修改send_mail()函数的参数,您可以自定义发送的邮件内容和收件人信息。请确保您的SMTP服务器和邮箱账号信息是正确的,否则发送邮件可能会失败。