在Python中,可以使用两种方法来发送电子邮件:smtplib
和ssmtp
。smtplib
是Python内置的库,而ssmtp
是一个简单的SMTP客户端,通常用于在Linux系统中发送电子邮件。
以下是使用smtplib
和ssmtp
发送电子邮件的方法:
smtplib
库(如果尚未安装):pip install secure-smtplib
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 设置发件人、收件人和邮件内容
sender = 'your_email@example.com'
receiver = 'receiver_email@example.com'
subject = '邮件主题'
message_body = '邮件正文'
# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject
msg.attach(MIMEText(message_body, 'plain'))
# 连接到SMTP服务器并发送邮件
try:
server = smtplib.SMTP('smtp.example.com', 587)
server.starttls()
server.login('your_email@example.com', 'your_password')
server.sendmail(sender, receiver, msg.as_string())
server.quit()
print('邮件已成功发送')
except Exception as e:
print('邮件发送失败:', e)
ssmtp
:sudo apt-get install ssmtp
ssmtp
的配置文件:sudo nano /etc/ssmtp/ssmtp.conf
root=your_email@example.com
mailhub=smtp.example.com:587
AuthUser=your_email@example.com
AuthPass=your_password
UseSTARTTLS=YES
import os
receiver = 'receiver_email@example.com'
subject = '邮件主题'
message_body = '邮件正文'
# 创建邮件文件
with open('/tmp/email.txt', 'w') as f:
f.write(f'Subject: {subject}\n\n{message_body}')
# 使用ssmtp发送邮件
os.system(f'ssmtp {receiver} < /tmp/email.txt')
请注意,ssmtp
不支持通过代码直接发送邮件,因此需要使用操作系统命令来发送邮件。在这个例子中,我们将邮件内容写入一个临时文件,然后使用ssmtp
命令行工具发送邮件。
领取专属 10元无门槛券
手把手带您无忧上云