Newsletter (Test) Email Not Showing Hero Image (Shows ? Question Mark)

  • What’s your URL? This is the easiest way for others to help you
  • What version of Ghost are you using? If it’s not the latest, please update Ghost first before opening your topic

Version 4.6.4

  • How was Ghost installed and configured?

I followed the guide for setup on Ubuntu 20.04. Also some other guides around setting up postfix.

  • What Node version, database, OS & browser are you using?

Node 14.17.0
mysql
Ubuntu 20.04
Browser: the one in Apple Mail, but I also tried Gmail in Safari and Chrome on Mac latest.

  • What errors or information do you see in the console?

No console errors.

  • What steps could someone else take to reproduce the issue you’re having?

I could either forward the email it generated or I could put your email in to test directly.

It shows a broken image. But when I preview in browser, it shows fine. I also viewed the source and checked the URL there, and it is OK (more on that coming). Here is the post:

When I view the message source (in Mail) and copy that to a better editor, these are the lines in question:

                                        <td class=3D"feature-image" style=
=3D"font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Rob=
oto, Helvetica, Arial, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe =
UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 18px; vertical-align: =
top; color: #15212A; padding-bottom: 30px; width: 100%;" width=3D"100%" val=
ign=3D"top"><img src=3D"/content/images/size/w1200/2021/05/6522F16A-0B1E-47=
F6-B177-5F7871DDD2E4.jpeg" width=3D"600" style=3D"border: none; -ms-interpo=
lation-mode: bicubic; max-width: 100%;"></td>

It is breaking the image URL up with some extra encoding. I assume that’s normal, but I thought I’d mention it in case not.

The problem is that somehow you’ve ended up with a relative image URL in your email (/content/images/size/w1200/2021/05..) which won’t work because it should be a full URL including the protocol and domain name (https://yourdomain.com/content/images/...).

I’ve tested this on a production setup and can’t reproduce.

Are you seeing this when you send a preview to yourself or when you actually publish? Are you using a custom storage engine?

Interesting! Good point. Does setting base url not work in emails I guess? I kinda assumed it had that w/o checking it.

It might be worth noting that I imported all current content from a v3 instance. I discovered my old hosting solution made it not easy to upgrade, which is why I migrated to a full VM I can manage using the cli… anyhow, so maybe old v3 data issue? Did it handle inserting images differently perhaps?

This was a test email via the “Email newsletter” setting panel. I looked for a way to “send as newsletter” for an existing post and did not see it. Is the only way to send “for real” to do a new post?

I removed the post image and re-added it, and now it is fine in the test email.

Is there a command or something I should run to update my old data after importing it? (Maybe this is really more an issue for the importer?)

Anyhow, I don’t have plans to back-send anything, so probably no big deal. At least, we identified that it’s not going to be a problem (probably) with new content/newsletters. Thank you.

In any event, can I just express my great appreciation for you all? This is amazingly good software. So well done, well designed, and easy to deal with from a management point of view as well as authoring, theming, and so on.

I may yet convert to Pro/hosted by y’all. The geek in me wanted to manage it myself, but not sure that’s gonna last. lol

How did you handle the import? If it was done via the labs export/import then the switch to the newer way of storing URLs should have been handled for you when you imported, there’s likely a bug somewhere if that wasn’t done.

Yup. Export from Labs on old. Import that file from Labs on new.