एक्सेल में अजगर के साथ उपयोगकर्ताओं की सूची के अनुलग्नक के साथ आउटलुक ईमेल भेजें
मैं नीचे स्क्रिप्ट के साथ आउटलुक का उपयोग करके ईमेल भेजने में सक्षम हूं, लेकिन अगर मैं अनुलग्नक भेजने की कोशिश करता हूं तो यह त्रुटि देता है।
फ़ाइल Name_Email.xlsx
NAME EMAIL
Roy [email protected]
Jack [email protected]
पायथन लिपि
import win32com.client as win32
import pandas as pd
email_list = pd.read_excel(r'C:\Users\roy\Name_Email.xlsx')
names = email_list['NAME']
emails = email_list['EMAIL']
for i in range(len(emails)):
name = names[i]
email = emails[i]
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = email
mail.Subject = 'Message subject'
mail.Body = 'Hello ' + name
attachment = "hosts.txt"
mail.Attachments.Add(attachment)
mail.Send()
त्रुटि मुझे मिल रही है:
pywintypes.com_error: (-2147352567, 'Exception occurred.', (4096, 'Microsoft Outlook', 'Cannot find this file. Verify the path and file name are correct.', None, 0, -2147024894), None)
फ़ाइल का नाम सही है, और यह स्क्रिप्ट के समान निर्देशिका में है।
इसके अलावा मैंने अटैचमेंट = 'Host.txt' बदलने की कोशिश की, लेकिन वही त्रुटि। यकीन नहीं हो रहा है क्या याद आ रही है।
जवाब
1 SrinathNeela
इसे इस्तेमाल करे
from win32com.client import Dispatch
import win32com
import pandas as pd
def mailprepare():
num = range(0, 5)
for kk in num:
outlook = win32com.client.Dispatch("Outlook.Application")
for accoun in outlook.Session.Accounts:
if accoun.SmtpAddress == '[email protected]':
newaccount = accoun
break
mail = outlook.CreateItem(0)
mail._oleobj_.Invoke(*(64209, 0, 8, 0, newaccount))
data = pd.ExcelFile('D:\\path.xlsx')
sheet = data.parse('Sheet1')
name = sheet['Names'][kk]
mailto = sheet['Mails'][kk]
att = 'D:\\yourattchment.txt'
with open(att, 'r') as my_attch:
myfile=my_attch.read()
mail.To = mailto
mail.Subject = 'Subject'
mail.Body = 'mail body'+ name
mail.Attachments.Add(att)
mail.Display(True)
mail.send
mailprepare()
0m3r
आप बस hosts.txt
एक चर के लिए असाइन कर रहे हैं, लेकिन संलग्न करें। एक फ़ाइल नाम के साथ पूर्ण फ़ाइल सिस्टम पथ की तलाश कर रहा है
वर्तमान निर्देशिका का उपयोग करने के लिए
उदाहरण
import os
print(os.getcwd() + "\hosts.txt")
या
import os
attachment = "hosts.txt"
print(os.path.realpath(attachment))
FYI करें - मैं 3.8 अजगर पर हूं