powershell отправляет электронное письмо с двоичным вложением - PullRequest
2 голосов
/ 23 марта 2011

Как отправить электронное письмо, содержащее бинарный файл, используя скрипт powershell?Ниже приведена моя неудачная лучшая попытка

$to = 'andy.boo@boo.com'
$subject = 'boo'
$file = 'inf.doc'
$from = $to
$filenameAndPath = (Resolve-Path .\$file).ToString()

[void][Reflection.Assembly]::LoadWithPartialName('System.Net') | out-null

$message = New-Object System.Net.Mail.MailMessage($from, $to, $subject, $subject)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath, 'text/plain')
$message.Attachments.Add($attachment)

$smtpClient = New-Object System.Net.Mail.SmtpClient
$smtpClient.host = 'smtp.boo.com'
$smtpClient.Send($message)

Исключение, вызывающее «Отправить» с аргументом «1»: «Ошибка отправки почты».В C: \ email.ps1: 15 char: 17 + $ smtpClient.Send <<<< ($ message) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException </p>

Ответы [ 2 ]

4 голосов
/ 23 марта 2011

Какая версия PowerShell?Если вы используете версию 2.0, избавьте себя от проблем и просто используйте командлет Send-MailMessage.

Если версия 1.0:

$msg = new-object system.net.mail.MailMessage
$SMTPClient = new-object system.net.mail.smtpClient
$SMTPClient.host = "smtp server"
$msg.From = "Sender"
$msg.To.Add("Recipient")
$msg.Attachments.Add('<fullPathToFile')
$msg.Subject = "subject"
$msg.Body = "MessageBody"
$SMTPClient.Send($Msg)
0 голосов
/ 23 марта 2011

нашел это .. что намного лучше

Send-MailMessage -smtpServer smtp.doe.com -from 'joe@doe.com' -to 'jane@doe.com' -subject 'Testing' -attachment foo.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...