优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python脚本之电子邮件自动化

nanyue 2025-02-13 13:31:03 技术文章 5 ℃

Python脚本之电子邮件自动化

发送个性化电子邮件

# 发送个性化电子邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_personalized_email(sender_email,sender_password,recipients,subject,body):
    """
    :param sender_email:
    :param sender_password:
    :param recipients:
    :param subject:
    :param body:
    :return:
    """
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender_email, sender_password)
    for recipient_email in recipients:
        message = MIMEMultipart()
        message['From'] = sender_email
        message['To'] = recipient_email
        message['Subject'] = subject
        message.attach(MIMEText(body, 'plain'))
        server.sendmail(sender_email, recipient_email, message.as_string())
    server.quit()

说明:此脚本使您能够向收件人列表发送个性化电子邮件,适用于邮件群发任务。



通过电子邮件发送文件附件

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.mime.text import MIMEText
from wsgiref.simple_server import server_version


def send_email_with_attachment(sender_email, sender_password,recipient_email, subject, body, file_path):
    server=smtplib.SMTP('smtp.gmail.com',587)
    server.starttls()
    server.login(sender_email,sender_password)
    message = MIMEMultipart()
    message['From'] = sender_email
    message['To'] = recipient_email
    message['Subject'] = subject
    message.attach(MIMEText(body,'plain'))
    with open(file_path,'rb') as attachment:
        part = MIMEBase('application', 'octet-stream')
        part.set_payload(attachment.read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition',f'attachment',filename={file_path})
        message.attach(part)
    server.sendmail(sender_email,recipient_email,message.as_string())
    server.quit()

说明:此脚本允许您发送带有文件附件的电子邮件,适用于发送包含附件的邮件。

自动邮件提醒

import smtplib
from email.mime.text import MIMEText
from datetime import datetime,timedelta

def send_reminder_mail(sender_email,sender_password,recipient_email,subject,body,reminder_date):
    """
    自动邮件提醒
    :param sender_email:
    :param sender_password:
    :param recipient_email:
    :param subject:
    :param body:
    :param reminder_date:
    :return:
    """
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender_email, sender_password)
    now = datetime.now()
    reminder_date = datetime.strptime(reminder_date, "%Y-%m-%d")
    if now.date()==reminder_date.date():
        message = MIMEText(body, 'plain', 'utf-8')
        message['Subject'] = subject
        message['From'] = sender_email
        message['To'] = recipient_email
        server.sendmail(sender_email, recipient_email, message.as_string())
        server.quit()

说明:此脚本根据指定日期发送自动电子邮件提醒,确保您不会错过重要的任务或事件。

最近发表
标签列表