0

画像を添付してメールを送信し、この画像をhtmlに埋め込みたいです。tag のソースとして、何を書けばいいですか? content_type などのヘッダー部分が抜けていませんか?

実際のテストを行っているときは、自分の gmail アカウントにメールを送信します。「unnamed」という名前の添付ファイルがあり、ダウンロードしても画像を表示できませんでした。

宝石:ポニー

require 'pony'
Pony.override_options = { :via => :test }
Pony.mail(
    :to => 'foo@bar',
    :from => 'abc@abc.com',
    :subject => 'test123',
    :body =>   "<h1><strong>Dear X, check the newsletter ,<br></strong></h1> <img src='attached image' />",
    :attachments => {"happy_image.jpg" => File.read("happy_image.jpg")}
)
puts Mail::TestMailer.deliveries

出力:

Date: Tue, 06 Dec 2016 17:23:05 +0300

From: abc@abc.com

To: foo@bar

Message-ID: <5846c9ca183d6_5983c9fd899060@MW7BIQ12TKYHQC.mail>

Subject: test123

Mime-Version: 1.0

Content-Type: multipart/mixed;

boundary="--==_mimepart_5846c9caf15a_5983c9fd8989e5";

charset=UTF-8

Content-Transfer-Encoding: 7bit





----==_mimepart_5846c9caf15a_5983c9fd8989e5

Content-Type: text/plain;

charset=UTF-8

Content-Transfer-Encoding: 7bit



<h1><strong>Dear X, check the newsletter ,<br></strong></h1> <img src='' />

----==_mimepart_5846c9caf15a_5983c9fd8989e5

Content-Type: image/jpeg;

 filename=happy_image.jpg

Content-Transfer-Encoding: base64

Content-Disposition: attachment;

filename=happy_image.jpg

Content-ID: <happy_image.jpg@MW7BIQ12TKYHQC>



/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQE

BQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/

2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU

FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAHiAuMDASIAAhEBAxEB/8QA

HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF

BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK

FhcYGQ==



----==_mimepart_5846c9caf15a_5983c9fd8989e5--
4

1 に答える 1

0

src画像を BASE64 でエンコードし、結果の文字列をimgタグとして使用できるはずです。

例えば:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAD8CAYAAAB..."/>

また、コンテンツ タイプがtext/htmlではなく に設定されていることを確認してくださいtext/plain。メールを見ると、後者に設定されているようです。そのため、画像がレンダリングされず、タグがテキストとしてレンダリングされます。text/htmlコンテンツ タイプを使用するには、引数に次を追加します。

:headers => { 'Content-Type' => 'text/html' }

于 2016-12-06T16:19:36.323 に答える