2016-10-31 24 views
0

Powershell経由で送信するために画像を電子メールに埋め込もうとしています。以下は Powershell画像を電子メールで送信

は、私が持っているコードです:

$Attachment = New-Object Net.Mail.Attachment($LocalLocation) 
$Attachment.ContentDisposition.Inline = $True 
$Attachment.ContentDisposition.DispositionType = "Inline" 
$Attachment.ContentType.MediaType = "image/png" 


$MailMessage = New-Object Net.Mail.MailMessage 
$MailMessage.To.Add($emailTo) 
$MailMessage.From = $MyEmail 
$MailMessage.Subject = "Test Email" 
$MailMessage.IsBodyHtml = $True 
$MailMessage.Attachments.Add($Attachment) 

$MailMessage.Body = " 
    <html> 
    <head></head> 
    <body> 
     <img src='CID:$($Attachment.ContentId)' /> 
    </body> 
    </html>" 

$SmtpClient = New-Object Net.Mail.SmtpClient("123.0.0.1",25) 
$SmtpClient.Send($MailMessage) 

私は電子メールを送信されますが、ただの空のボックスには、メッセージの中にあります。 $ LocalLocationは私の画像へのリンクです。

私はPowerShellの3

+0

あなたは '$ Attachment.ContentId'を参照していますが、値を割り当てているとは思われません。 – LotPings

答えて

1
$SendTo = "Sender Mail ID" 
$SMTPServer = "SMTP Server" 
$EmailFrom = “Reciever Mail ID” 
$EmailSubject = “Email including images in HTML” 
$Image = "Image File" 
$Message = new-object Net.Mail.MailMessage 
Add-PSSnapin Microsoft.Exchange.Management.Powershell.Admin -erroraction silentlyContinue 
$att = new-object Net.Mail.Attachment($Image) 
$att.ContentId = "att" 
$smtp = new-object Net.Mail.SmtpClient($smtpServer) 
$body = '<img src="cid:att" />' 
$Message.From = $EmailFrom 
$Message.To.Add($SendTo) 
$Message.Subject = $EmailSubject 
$Message.Body = $body 
$Message.IsBodyHTML = $true 
$Message.Attachments.Add($att) 
$smtp.Send($Message) 
$att.Dispose() 

希望このHEplsを使用しています。

+0

IMO '$ mailmessage.Attachments.Add($ att1)'は '$ mailmessage = New-Object system.net.mail.mailmessage'の前に置かれません – LotPings

+0

@lotpings修正のためにありがとう – Venkatakrishnan

+0

私はイメージを体。 ''は私が身体に入れたときにはまだ動作しません。ありがとう – Mike