Создайте проект электронной почты Outlook использование PowerShell

Я трахнул это путем удаления тогда передобавления незаконного файла. Не самый хороший способ сделать это, и это, вероятно, повредило историю пересмотра, но это удовлетворило моим целям.

Причина желания сделать это: Файл был одним из двух исполняемых файлов, созданных из того же источника (с различным набором #defines). Незначительное изменение для определения источника предназначенный каждый изменился, каждый не сделал. Я хотел записать в истории пересмотра, что я на самом деле обновил ее к последней версии (даже при том, что не было никакого изменения).

, Возможно, точка MГёller Morten Holdflod, что "файл все еще будет частью нового пересмотра", покрыла бы этот признак, но я думаю, что журнал неизменного файла не показал комментарии для того пересмотра.

15
задан Jason 21 September 2009 в 09:58
поделиться

3 ответа

$olFolderDrafts = 16
$ol = New-Object -comObject Outlook.Application 
$ns = $ol.GetNameSpace("MAPI")

# call the save method yo dave the email in the drafts folder
$mail = $ol.CreateItem(0)
$null = $Mail.Recipients.Add("XXX@YYY.ZZZ")  
$Mail.Subject = "PS1 Script TestMail"  
$Mail.Body = "  Test Mail  "
$Mail.save()

# get it back from drafts and update the body
$drafts = $ns.GetDefaultFolder($olFolderDrafts)
$draft = $drafts.Items | where {$_.subject -eq 'PS1 Script TestMail'}
$draft.body += "`n foo bar"
$draft.save()

# send the message
#$draft.Send()
23
ответ дан 1 December 2019 в 00:18
поделиться

Основываясь на других ответах, я немного урезал код и использовал

$ol = New-Object -comObject Outlook.Application

$mail = $ol.CreateItem(0)
$mail.Subject = "<subject>"
$mail.Body = "<body>"
$mail.save()

$inspector = $mail.GetInspector
$inspector.Display()

. Это устраняет ненужный шаг по извлечению почты из папки черновиков. Между прочим, он также устраняет ошибку, которая произошла в коде Шэя Леви, когда два черновика писем имели одну и ту же тему.

22
ответ дан 1 December 2019 в 00:18
поделиться

Я думаю, что ответ Шэя Леви почти готов: единственное, что не хватает, - это отображение элемента. Для этого все, что вам нужно, - это получить соответствующий объект инспектора и указать ему, чтобы он отображался сам, например:

$inspector = $draft.GetInspector  
$inspector.Display()

См. Справку MSDN на GetInspector для более интересного поведения.

5
ответ дан 1 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: