• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 342
  • Last Modified:

Reproducing an html email

I'm running a powershell script that accumulates some reporting data.
Within the current method, is a copy/paste solution from an internal web page.  This copy includes a single image - a graphical represenation of a failure.
I have the link to the image, and if I paste my html code into a file, save it as html, it renders fine.
However, if I do this from within powershell, using the send-mailmessage cmdlet with -bodyashtml, it fails to bring in the image - I get a blank box instead.
How can I reproduce this in my email?
  • 5
  • 3
1 Solution
Dan CraciunIT ConsultantCommented:
So let me get this straight:
- you have a dynamic image generated on your web server
- if you create a web page an link to that image, on the same computer, it's displayed
- you're sending that link by email
- when viewing the email, presumably from another location, you get a blank box

Why not just copy the image and attach it to the email? That way the location won't matter any more.

sirbountyAuthor Commented:
Trying to automate a solution here, so manually copying the image won't work.
I've tried including the img locally to the server and pointing to it there (not a web server).
I've also tried pointing the img source to a web server where the image is stored.
If I take my generated html script and paste it into a text file, everything appears as I desire, but sending it via email does not.
sirbountyAuthor Commented:
Actually opening the email, viewing the source, and pasting that info in a test.html file works as well...
We Need Your Input!

WatchGuard is currently running a beta program for our new macOS Host Sensor for our Threat Detection and Response service. We're looking for more macOS users to help provide insight and feedback to help us make the product even better. Please sign up for our beta program today!

Dan CraciunIT ConsultantCommented:
OK, so the email is OK.
What are you using to view the email? Perhaps the image is blocked at the email client level.

Do you have a web interface for your mail server where you can try to view it?

PS: I was not suggesting copying the image manually. I think you can save it using powershell and then attach it to the email.
sirbountyAuthor Commented:
No, the email is not okay.  The source from the email renders fine if run outside of the email client (Outlook).

I think this is what I need: http://social.technet.microsoft.com/Forums/scriptcenter/en-US/1d9c7094-6991-4027-b7e2-d447d72dfec4/embed-a-background-image-in-a-html-code-sent-via-powershell

I'm just trying to get it working...
sirbountyAuthor Commented:
I've requested that this question be closed as follows:

Accepted answer: 0 points for sirbounty's comment #a39924376

for the following reason:

Sorted it by embedding the method described at http://social.technet.microsoft.com/Forums/scriptcenter/en-US/1d9c7094-6991-4027-b7e2-d447d72dfec4/embed-a-background-image-in-a-html-code-sent-via-powershell

Essentially, the solution is laid out in this example (from the above link). I couldn't get it working with powershell's native send-mailmessage cmdlet, but it did work via the .net import of system.net.mail.mailmessage

#Here is the template for the SMTPClient of dotNet.

$msg=new-object System.Net.Mail.MailMessage
$msg.Subject='test of image'
$msg.Body='<html><body> Check this out:<br /> <img src="cid:image1"></body></html>'
#images are found byt the 'COntentID-CID' in the body of the message
$att = new-object Net.Mail.Attachment('F:\Projects\My Pictures\Output1.JPG')
$att.ContentDisposition.Inline = $True
$att.ContentDisposition.DispositionType = "Inline"
$att.ContentType.MediaType = "image/jpeg"
$att.ContentId = "image1"

$smtp=new-object System.Net.Mail.SmtpClient

Dan CraciunIT ConsultantCommented:
So you did attach the image to the email :)
sirbountyAuthor Commented:
Sorry!  I totally overlooked your comment there.
Yes, that's what I've done - just had to locate the methods to accomplish this...
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.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now