Я начинающий пользователь python и пытаюсь создать программу, которая:
- Запускает запрос SQL и прикрепляет результат к электронному письму (я выполнил это, показано ниже)
- Выполните еще один более короткий запрос SQL, чтобы суммировать вложение и вставить результат в текст письма (со столбцами, чтобы его было легче читать)
Вопросы:
- Я застрял на # 2. Любое руководство приветствуется
- для # 1, мой код работает нормально, и я получаю письмо с вложением, но кое-как, как через 30 минут я получаю письмо от администратора базы данных, что мой запрос выполняется в течение 30 минут. Не уверены, что я делаю, что вызывает выполнение запроса в обратном направлении?
Если вы обнаружите какие-либо другие проблемы с моим кодом, пожалуйста, дайте мне знать. Спасибо
import csv
import datetime
import shutil
import smtplib
import pyodbc
import pandas as pd
import pandas.io.sql
import win32com.client as win32
server = 'WESTBIS'
db1 = 'ExternalUser'
db2 = 'BI_MIP'
conn = pyodbc.connect('Driver={SQL Server};'
'Server=WESTBIS;'
'Database1=ExternalUser;'
'Database2=BI_MIP;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute("My sql query")
col_headers = [ i[0] for i in cursor.description ]
rows = [ list(i) for i in cursor.fetchall()]
df = pd.DataFrame(rows, columns=col_headers)
df.to_csv("----.csv", header = True, index=False)
newPath = shutil.copy('--------.csv', 'C:/Users/Documents/----/')
outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = '12345@email.com'
mail.Subject = 'EMAIL SUBJECT'
mail.Body = 'EMAIL BODY'
mail.HTMLBody = '<h2>BODY OF EMAIL IN HTML</h2>'
attachment = "C:\\Users\\-----\\Documents\\Projects\\------.csv"
mail.Attachments.Add(attachment)
mail.Send()