diff --git a/app/helpers/user_notifications_helper.rb b/app/helpers/user_notifications_helper.rb
index 4389125bd1a..eb0293183b2 100644
--- a/app/helpers/user_notifications_helper.rb
+++ b/app/helpers/user_notifications_helper.rb
@@ -49,7 +49,7 @@ module UserNotificationsHelper
 
     # If there is no first paragaph with text, return the first paragraph with
     # something else (an image) or div (a onebox).
-    doc.css('body > p, body > div').first
+    doc.css('body > p:not(:empty), body > div:not(:empty), body > p > div.lightbox-wrapper img').first
   end
 
   def email_excerpt(html_arg, post = nil)
diff --git a/spec/helpers/user_notifications_helper_spec.rb b/spec/helpers/user_notifications_helper_spec.rb
index b72dcf82c0c..21e0a181fec 100644
--- a/spec/helpers/user_notifications_helper_spec.rb
+++ b/spec/helpers/user_notifications_helper_spec.rb
@@ -28,6 +28,22 @@ describe UserNotificationsHelper do
       HTML
     end
 
+    let(:image_paragraph) do
+      '<p><img src="//localhost:3000/uploads/b9.png" width="300" height="300"></p>'
+    end
+
+    let(:lightbox_image) do
+      <<~HTML
+        <p><div class="lightbox-wrapper"><a class="lightbox" href="//localhost:3000/uploads/default/original/1X/123456.jpeg" data-download-href="//localhost:3000/uploads/default/123456" title="giant-meteor-2020"><img src="//localhost:3000/uploads/default/original/1X/123456.jpeg" alt="giant-meteor-2020" data-base62-sha1="3jcR88161od6Uthq1ixWKJh2ejp" width="517" height="152" data-small-upload="//localhost:3000/uploads/default/optimized/1X/123456_2_10x10.png"><div class="meta">
+        <svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use xlink:href="#far-image"></use></svg><span class="filename">giant-meteor-2020</span><span class="informations">851×251 44 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use xlink:href="#discourse-expand"></use></svg>
+        </div></a></div></p>
+      HTML
+    end
+
+    let(:expected_lightbox_image) do
+      '<div class="lightbox-wrapper"><a class="lightbox" href="//localhost:3000/uploads/default/original/1X/123456.jpeg" data-download-href="//localhost:3000/uploads/default/123456" title="giant-meteor-2020"><img src="//localhost:3000/uploads/default/original/1X/123456.jpeg" alt="giant-meteor-2020" data-base62-sha1="3jcR88161od6Uthq1ixWKJh2ejp" width="517" height="152" data-small-upload="//localhost:3000/uploads/default/optimized/1X/123456_2_10x10.png"></a></div>'
+    end
+
     it "can return the first paragraph" do
       SiteSetting.digest_min_excerpt_length = 50
       expect(helper.email_excerpt(cooked)).to eq(paragraphs[0])
@@ -71,7 +87,7 @@ describe UserNotificationsHelper do
     end
 
     it "defaults to content after post quote (image w/ no text)" do
-      image_paragraph = '<p><img src="//localhost:3000/uploads/b9.png" width="300" height="300"></p>'
+
       cooked = <<~HTML
         #{post_quote}
         #{image_paragraph}
@@ -87,6 +103,23 @@ describe UserNotificationsHelper do
       HTML
       expect(helper.email_excerpt(cooked)).to eq(aside_onebox)
     end
+
+    it "defaults to content after post quote (lightbox image w/ no text)" do
+      cooked = <<~HTML
+        #{post_quote}
+        #{lightbox_image}
+      HTML
+      expect(helper.email_excerpt(cooked)).to eq(expected_lightbox_image)
+    end
+
+    it "handles when there's only an image" do
+      image_paragraph
+      expect(helper.email_excerpt("#{image_paragraph}")).to eq(image_paragraph)
+    end
+
+    it "handles when there's only a lightboxed image" do
+      expect(helper.email_excerpt("#{lightbox_image}")).to eq(expected_lightbox_image)
+    end
   end
 
   describe '#logo_url' do