Не удается отправить изображение в Outlook при указании высоты и ширины изображения с помощью python

#python #outlook

Вопрос:

Я использую скрипт из Интернета, который делает снимок экрана листа Excel, а затем отправляет электронное письмо, используя это изображение в теле. Скрипт работает нормально, пока я не укажу высоту и ширину изображения в html-коде для тела письма.

 import os import win32com.client as client from PIL import ImageGrab   workbook_path = r'C:pathtoexcelexcel.xlsx'  # start an instance of Excel excel = client.Dispatch('Excel.Application')  # open the workbook wb = excel.Workbooks.Open(workbook_path) # get the sheet  sheet = wb.Worksheets['Sheet1'] excel.Visible = True # copy the target range copyrange= sheet.Range('A1:AA132') copyrange.CopyPicture(Appearance=1, Format=2)  # grab the saved image from the clipboard and save to working directory ImageGrab.grabclipboard().save('paste.png') excel.Quit()  # get the path of the current working directory and create image path image_path = 'paste.png'  html_body = """  lt;divgt;  lt;pgt;Hi All, lt;/pgt;  lt;pgt; text lt;/pgt;  lt;/divgt;  lt;divgt;  lt;img src={} height = "500" width = "600"gt;lt;/imggt;  lt;/divgt;  """  # # startup and instance of outlook outlook = client.Dispatch('Outlook.Application')   # create a message message = outlook.CreateItem(0)   # set the message properties message.To = 'to address' message.Subject = 'subject ' message.HTMLBody = html_body.format(image_path)  # display the message to review message.Display() #message.Send()  

в электронном письме появляется текст для тела, но нет изображения. Если я использую lt;img src={}gt;lt;/imggt; изображение, появится

Как я могу изменить размер изображения для электронного письма?

Ответ №1:

Просто предположение, но, может быть, проблема в том, как отформатирован HTML? lt;imggt; это самозакрывающийся тег, и, как правило, вы не ставите пробелы между значением attr и значением.

Попробуйте это и посмотрите, работает ли это:

 html_body = """  lt;divgt;  lt;pgt;Hi All, lt;/pgt;  lt;pgt; text lt;/pgt;  lt;/divgt;  lt;divgt;  lt;img src={} height="500px" width="600px" /gt;  lt;/divgt;  """  

Комментарии:

1. хм, оказывается, проблема в том, что у меня не было px, но px не меняет размер, если вместо этого я использую%: (

2. Это определенно странно!