首页 > 解决方案 > Python 电子邮件发送给多个收件人

问题描述

我的代码没有问题。在我的收件人列表中,我有 10 个电子邮件地址。您知道要向此列表中的每个单身地址电子邮件发送电子邮件吗?

消息错误:

pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Out look', 'Outlook 无法识别一个或多个名称。', None, 0, -2147467259), None)

import win32com.client as win32
import pandas as pd

xls = pd.ExcelFile(path)
dfs = xls.parse(sheet_name="details", header = None)
recipients = dfs[21]

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = recipients
mail.Subject = 'Automatic Email '
mail.Body = 'body'
mail.HTMLBody = 'Hello, this is a test </h2>'
mail.Send()

标签: pythonemailautomationpywin32

解决方案


我会创建一个函数来发送消息,然后放一个 for 循环,上面写着for email in email_list: send_email(your_subject, your_message, email)

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_email(subject, message, recipient):
    smtp_obj = smtplib.SMTP('smtp.mail.yahoo.com', 587)
    smtp_obj.starttls()
    smtp_obj.ehlo()
    smtp_obj.login('your_username_here', 'your_password_here')
    msg = MIMEMultipart()
    msg['From'] = 'your_email_here'
    msg['To'] = recipient
    msg['Subject'] = subject
    msg.attach(MIMEText(message, 'plain'))
    smtp_obj.sendmail(msg['From'], msg['To'], msg.as_string())
    smtp_obj.quit()

这是我通过雅虎发送电子邮件的功能,但可以通过登录到您的提供商的适当 smtp 服务器来调整它(我会从您的代码中猜测前景)


推荐阅读