2011-03-23 136 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”的说法(S):“发送邮件失败。” 在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) 
相关问题