How can I embed images in an HTML email message sent via Exchange Powershell?

I have a working Powershell script that looks at an input file for two variables (recipients and language code).  each email that is sent contains a header and footer image.  But, the email that Outlook receives doesn't automatically display the images.  the user has to allow Outlook to download the images.  Is there a way around this?  Is it possible to embed the images in the HTML formatted email that is sent via Powershell?

Here is my script below:

Start-Transcript -PATH UserImportLog.txt -append

# Language specific text
$Subject = @{
  en = @"
Service Request Approval
  fr = @"
Approbation d’une demande de service

$msg = @{
  en = @"
<img src="\\sharename\Images\header_en.png" /><br>
<p><b><font color="#FF9900">Service Request Approval:</font></b></p>

<p>You have been identified as the approver of one or several Service Requests.</p>

<p><b>Your action (approval / rejection / reassignment) is important because the requests cannot be fulfilled without your approval.</b></p>

<p>Therefore, please go to the portal to validate these requests by clicking on the following link:



<p>For further information or assistance, please contact your local Service Desk.</p>

<p>Best regards,</p>

<p>The IS Team</p>

<p>PS: This e-mail was generated automatically. Please do not reply directly to this e-mail.</p>
<img src="\\sharename\Images\footer.png"><br>
  fr = @"
<img src="\\sharename\Images\header_fr.png" /><br>
<p><b><font color="#FF9900">Approbation d&rsquo;une demande de service:</font></b></p>

<p>Vous avez &eacute;t&eacute; identifi&eacute; comme &eacute;tant l&rsquo;approbateur d&rsquo;une ou plusieurs demandes de services INIT.</p>

<p><b>Votre action (validation / refus / r&eacute;assignation) est importante car aucun traitement ne pourra &ecirc;tre effectu&eacute; par les

&eacute;quipes IS tant que ces demandes ne seront pas approuv&eacute;es.</b></p>

<p>Nous vous invitons donc &agrave; vous connecter &agrave; votre portail pour valider ces demandes en cliquant sur ce lien :</p>


<p>Pour tout compl&eacute;ment d&rsquo;information ou assistance, n&rsquo;h&eacute;sitez pas &agrave; contacter votre Service Desk.</p>


<p>L&rsquo;&eacute;quipe IS</p>

<p>PS: Ce message a &eacute;t&eacute; envoy&eacute; automatiquement, merci de ne pas y r&eacute;pondre</p>
<img src="\\servername\Images\footer.png"><br>

#Importing the input file with two variables (emailaddress,languagecode)

Import-Csv -Path UserImport.csv | foreach-object {
     Send-MailMessage -SmtpServer servername -From "smtpaddress" -To $_.emailaddress -BodyasHTML -subject $subject[$_.languagecode] -Body $msg

[$_.languagecode] -Encoding ([System.Text.Encoding]::UTF8)

Who is Participating?
Rainer JeschorConnect With a Mentor Commented:
yes there is. You have to use inline images. There is a nice sample on the Powershell gallery:

bcapelloAuthor Commented:
I'm using 'Send-MailMessage' cmdlet in Powershell.  -InlineAttachments is not a valid cmdlet.
bcapelloAuthor Commented:
I am using Powershell v2.  -inlineattachments parameter only works with v3.
QlemoBatchelor and DeveloperCommented:
Note: The script shown modifies the standard Send-MailMessage cmdlet by adding -InlineAttachments. It works with PS2.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.