【发布时间】:2023-02-08 12:17:05
【问题描述】:
我试图将 outlook 邮件自动发送给具有不同内容的多个收件人,但我一直收到以下错误。
错误:
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Pritch\Desktop\email.py", line 19, in <module>
print(df['Name'][i], df['Email_id'][i])
File "C:\Users\Pritch\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\frame.py", line 3804, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users\Pritch\AppData\Local\Programs\Python\Python311\Lib\site-packages\pandas\core\indexes\base.py", line 3805, in get_loc
raise KeyError(key) from err
代码:
import pandas as pd
import win32com.client
import time
path = r'c:\Users\Abc\Desktop\content.csv'
df = pd.read_csv(path, sep=';', encoding='cp1252')
print(df)
for i in df.index:
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.Subject = 'Test Mail'
#mail.HTMLBody = '<h3>This is HTML Body</h3>'
print(df['Name'][i], df['Email_id'][i])
mail.To = df['Email_id'][i]
mail.HTMLBody = '''\
<html>
<head></head>
<body>
<p>Hello ''' + df['Name'][i] + ''',<br>
<p> Please refer your score.<br>
<body> ''' + str(df['Content'][i]) + ''' </br></body>
<font color ='blue'>
<br>Thanks</>
</font>
<br></br>
<font color ='red'>
Kindly do not reply to this email.<t1>
</font>
</p>
</body>
</style>
</html>
'''
mail.Send()
【问题讨论】:
-
为什么不直接使用
df.iterrows?当您打印df时,它是否显示您期望的列名称,拼写是否完全一样?
标签: python email outlook win32com office-automation