2011-03-23 6 views
2

powershell 스크립트를 사용하여 바이너리 파일이 포함 된 이메일을 보내려면 어떻게해야합니까? 다음은 실패한 최선의 시도입니다.powershell 바이너리 첨부 파일로 이메일 보내기

$to = '[email protected]' 
$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 문자 : 17 + $ smtpClient.Send <는 < < < ($ 메시지)는 + CategoryInfo : NotSpecified (:) [] MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException

답변

4

어떤 버전의 PowerShell이 ​​필요합니까? 버전 2.0을 사용하는 경우 문제를 해결하고 Send-MailMessage cmdlet 만 사용하십시오.

경우, 버전 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) 
관련 문제