使用Python编写一个简单的电子邮件发送程序
发布时间:2023-12-04 08:58:56
以下是一个使用Python编写的简单电子邮件发送程序的代码,包括一个使用例子:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path=None):
# 创建一个MIMEMultipart对象,用于构建邮件内容
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject
# 添加邮件正文
body_text = MIMEText(body, 'plain')
msg.attach(body_text)
# 添加附件
if attachment_path:
attachment = MIMEText(open(attachment_path, 'rb').read(), 'base64', 'utf-8')
attachment['Content-Type'] = 'application/octet-stream'
attachment['Content-Disposition'] = 'attachment; filename="%s"' % attachment_path.split("/")[-1]
msg.attach(attachment)
try:
# 创建一个SMTP对象,用于连接SMTP服务器并发送邮件
smtp_obj = smtplib.SMTP('smtp.gmail.com', 587)
smtp_obj.starttls()
# 用户名密码验证登录SMTP服务器
smtp_obj.login(sender_email, sender_password)
# 发送邮件
smtp_obj.sendmail(sender_email, receiver_email, msg.as_string())
print("邮件发送成功")
except smtplib.SMTPException as e:
print("邮件发送失败:" + str(e))
smtp_obj.quit()
# 使用示例
sender_email = "your_email@gmail.com" # 发送方邮箱
sender_password = "your_password" # 发送方邮箱的授权码
receiver_email = "recipient_email@gmail.com" # 接收方邮箱
subject = "测试邮件" # 邮件主题
body = "这是一封测试邮件。" # 邮件正文
attachment_path = "path/to/attachment.txt" # 附件路径
send_email(sender_email, sender_password, receiver_email, subject, body, attachment_path)
在上面的示例中,我们使用smtplib模块和email模块发送电子邮件。首先,我们创建一个MIMEMultipart对象来构建邮件内容,并设置发件人、收件人和主题。然后,我们添加邮件正文和附件(如果有的话)。接下来,我们创建一个SMTP对象,连接到SMTP服务器并使用发件人的邮箱和密码进行登录。最后,我们调用sendmail()方法发送邮件,并在发送成功或失败后输出相应的信息。
这个简单的电子邮件发送程序可以发送包含文本内容和附件的邮件。你只需替换示例代码中的发送方邮箱、密码、接收方邮箱、主题、正文和附件路径,然后运行程序即可发送邮件。确保你的发件人邮箱开启了SMTP服务,并且允许登录使用应用程序密码(或授权码)。
