python - 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()
解决方案
我会创建一个函数来发送消息,然后放一个 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 服务器来调整它(我会从您的代码中猜测前景)
推荐阅读
- spring - 如何使用 mockito 为以下代码编写 junit 测试?
- python - 如何修复“无法将输入转换为时间戳”ARIMA.predict
- python - 如何在Mongo中进行这种聚合?
- vue.js - 如何在 vue-router 中使用 async/await?
- angular - 如何在 Angular 6 中切换输入字段?
- jquery - 如何删除下拉列表中的重复项,jquery
- wso2 - WSO2 ESB - Rampart 密码回调类 - WSPasswordCallback 无法强制转换
- spectrogram - 梅尔谱图和 MFCC 之间的区别
- node.js - 用于视频编码的单独服务器?
- c# - AddMvc/AddSwaggerGen 和 UseMvc/UseSwagger(UI) 之间的顺序