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_server 为 smtp.163.com, smtp_port 为 25。
接着,我们需要填写发件人的邮箱账号和密码,这里的 sender_email 和 sender_password 分别为发件人的邮箱账号和密码。如果是第三方邮件客户端,例如 QQ 邮箱或者 Gmail,需要使用对应的 SMTP 服务器地址和端口,并且需要开启 SMTP 服务并获取授权码。
然后,我们需要设置接收人的邮箱地址,将其赋值给 receiver_email。
接下来,我们设置邮件内容。subject 为邮件的主题,content 为邮件的内容。邮件的主题和内容可以根据实际需要进行修改。
我们使用 email.mime.text.MIMEText 创建邮件对象,并将邮件的内容、主题、发件人和收件人设置给这个邮件对象。
然后,我们使用 smtplib.SMTP 连接邮件服务器,并使用 server.login() 方法登录发件人的邮箱账号。
最后,我们使用 server.sendmail() 方法发送邮件,其中第一个参数是发件人邮箱地址,第二个参数是接收人邮箱地址,第三个参数是邮件对象转换成字符串后的结果 msg.as_string()。
如果发送邮件成功,会打印出 "邮件发送成功!",否则会打印出 "邮件发送失败" 加上具体的错误信息。无论发送成功与否,都需要通过 server.quit() 关闭连接。
