Я пытаюсь настроить скрипт для отправки электронной почты и хочу добавить имя отправителя (в зависимости от того, кто запускает скрипт) в тело письма.
Работа с электронной почтой работает, и я настраиваюсь на Juypter, запускаю Python 3, пишу по электронной почте из Outlook.
Мой код указан ниже.Mail.SenderName - это часть, которую я хочу получить из учетной записи Outlook пользователя.В VBA это будет эквивалентно использованию Application.UserName
import win32com.client as win32
outlook = win32.Dispatch("outlook.application")
mail = outlook.CreateItem(0)
mail.To = "user@somewhere.com"
mail.Subject = "Report"
#Text for email
mail.HTMLBody = "Dear All,<br><br>" \
"The latest version of the Report is attached in PDF format.<br><br>" \
"Kind Regards <br><br>" \
mail.SenderName
attachment = filename
mail.Attachments.Add(attachment)
mail.Send()
. Поэтому я бы хотел, чтобы тело письма было:
Дорогие все,
Последнийверсия отчета прилагается в формате PDF.
С уважением
Боб Смит
Любая помощь, высоко ценится.
ОБНОВЛЕНИЕ
Объединив ответ от Error - Syntactical Remorse
и Eugene Astafiev
, с немного большим поиском, мне удалось решить проблему.Спасибо за руководство.
Полный код:
outlook = win32.Dispatch("outlook.application")
mail = outlook.CreateItem(0)
mail.To = "user@somewhere.com"
mail.Subject = "Report"
sender = outlook.GetNamespace("MAPI").CurrentUser.Name
#Text for email
mail.HTMLBody = "Dear All,<br><br>" \
"The latest version of the Report is attached in PDF format.<br><br>" \
"Kind Regards <br><br>" \
f"{sender}"
attachment = filename
mail.Attachments.Add(attachment)
mail.Send()