#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. Это определенно странно!