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

Python实现邮件发送功能

发布时间:2023-12-04 23:11:09

Python 提供了 smtplib 模块来实现邮件发送功能。以下是一个使用例子:

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

# 邮件服务器的地址和端口
smtp_server = 'smtp.163.com'
smtp_port = 25

# 发件人的邮箱账号和密码
sender_email = 'your_email@163.com'
sender_password = 'your_password'

# 接收人的邮箱地址
receiver_email = 'receiver_email@example.com'

# 邮件内容
subject = 'Python 邮件测试'
content = '这是一封使用 Python 发送的邮件。'

# 创建 MIMEText 邮件对象
msg = MIMEText(content, 'plain', 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
msg['From'] = sender_email
msg['To'] = receiver_email

try:
    # 连接邮件服务器
    server = smtplib.SMTP(smtp_server, smtp_port)
    # 登录发件人邮箱账号
    server.login(sender_email, sender_password)
    # 发送邮件
    server.sendmail(sender_email, receiver_email, msg.as_string())
    print('邮件发送成功!')
except Exception as e:
    print('邮件发送失败:', e)
finally:
    # 关闭连接
    server.quit()

在这个例子中,我们使用了 smtplib 模块和 email 模块来实现邮件发送功能。首先,我们需要设置邮件服务器的地址和端口,这里以 163 邮箱为例,所以设置了 smtp_serversmtp.163.comsmtp_port25

接着,我们需要填写发件人的邮箱账号和密码,这里的 sender_emailsender_password 分别为发件人的邮箱账号和密码。如果是第三方邮件客户端,例如 QQ 邮箱或者 Gmail,需要使用对应的 SMTP 服务器地址和端口,并且需要开启 SMTP 服务并获取授权码。

然后,我们需要设置接收人的邮箱地址,将其赋值给 receiver_email

接下来,我们设置邮件内容。subject 为邮件的主题,content 为邮件的内容。邮件的主题和内容可以根据实际需要进行修改。

我们使用 email.mime.text.MIMEText 创建邮件对象,并将邮件的内容、主题、发件人和收件人设置给这个邮件对象。

然后,我们使用 smtplib.SMTP 连接邮件服务器,并使用 server.login() 方法登录发件人的邮箱账号。

最后,我们使用 server.sendmail() 方法发送邮件,其中第一个参数是发件人邮箱地址,第二个参数是接收人邮箱地址,第三个参数是邮件对象转换成字符串后的结果 msg.as_string()

如果发送邮件成功,会打印出 "邮件发送成功!",否则会打印出 "邮件发送失败" 加上具体的错误信息。无论发送成功与否,都需要通过 server.quit() 关闭连接。