Отправить .eml через Outlook в Powershell - PullRequest
0 голосов
/ 25 апреля 2020

Следующий скрипт Powershell можно использовать для открытия предварительно отформатированного файла .eml и отправки его через сервер smtp:

$adoDbStream = New-Object -ComObject ADODB.Stream
$adoDbStream.Open()
$adoDbStream.LoadFromFile("C:\demo.eml")
$cdoMessage = New-Object -ComObject CDO.Message
$cdoMessage.DataSource.OpenObject($adoDbStream, "_Stream")
$cdoMessage.Send

К сожалению, у меня нет ни SMTP-сервера, ни Microsoft Exchange.

Можно ли отправить через Outlook (с помощью веб-почты) с помощью скрипта Powershell?

На самом деле у меня есть какой-то скрипт VBA, который работает:

Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SHOWMAXIMIZED As Long = 3
Private Const SW_SHOWMINIMIZED As Long = 2

Sub test11()

strMyFile = "C:\demo.eml"
If Dir(strMyFile) = "" Then
MsgBox "File " & strMyFile & " does not exist"
Else
ShellExecute 0, "Open", strMyFile, "", "C:\demo.eml", SW_SHOWNORMAL
End If
Set OL = GetObject(, "Outlook.Application")
Set MyInspect = OL.ActiveInspector
Set myItem = MyInspect.CurrentItem
myItem.Display
myItem.Recipients.Add "dummy@gmail.com"
myItem.Forward
End Sub
...