Python编写一个简单的邮件发送程序
发布时间:2023-12-04 09:13:35
邮件发送是一个常见的需求,Python提供了许多库来实现邮件发送功能。其中最常用的库是smtplib和email库。
smtplib库提供了SMTP客户端实现,可以连接邮件服务器发送邮件。email库提供了创建和格式化邮件的功能,可以用于创建邮件内容。
下面是一个简单的邮件发送程序,使用smtplib和email库实现。程序会读取一个配置文件,包含邮件服务器的信息、发件人和收件人等。然后通过SMTP客户端连接邮件服务器,并发送一封简单的邮件。
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def send_email(subject, content):
# 读取配置文件
config = read_config()
# 构造邮件
message = MIMEText(content, 'plain', 'utf-8')
message['From'] = Header(config['from'], 'utf-8')
message['To'] = Header(config['to'], 'utf-8')
message['Subject'] = Header(subject, 'utf-8')
try:
# 连接邮件服务器
server = smtplib.SMTP(config['server'], config['port'])
server.starttls()
server.login(config['username'], config['password'])
# 发送邮件
server.sendmail(config['from'], config['to'], message.as_string())
print("邮件发送成功")
except Exception as e:
print("邮件发送失败:", e)
finally:
server.quit()
def read_config():
# 读取配置文件
config = {
'server': 'smtp.example.com',
'port': 587,
'username': 'your_username',
'password': 'your_password',
'from': 'from@example.com',
'to': 'to@example.com'
}
return config
if __name__ == '__main__':
subject = '测试邮件'
content = '这是一封测试邮件'
send_email(subject, content)
在上面的代码中,send_email函数用于发送邮件。它首先读取配置文件,获取邮件服务器的信息、发件人和收件人等。然后构造一封简单的邮件,设置邮件标题、内容和发件人等。使用smtplib库连接邮件服务器并登录。最后调用SMTP的sendmail方法发送邮件。
read_config函数用于读取配置文件,返回一个包含邮件服务器信息的字典。
在主程序中,定义了一个主题和内容,并调用send_email函数发送邮件。
可以根据实际情况修改配置文件的内容,例如更换邮件服务器地址、端口号、发件人和收件人等。
