私は以下のコードで間違っていることを誰かが助けてくれることを望んでいました - 私のメールは、ほとんどのメールクライアント(gmail web、アンドロイド)、それはiphone/ipadで適切にレンダリングされません。最後に添付された画像だけが表示され、HTMLコンテンツやテキストコンテンツは表示されません。私はすべての電子メールクライアントがペイロードを違った方法で解釈してレンダリングすることを理解しています。私はそれをiPhoneで動作させる方法を知らない。iphoneで正しく表示されないインライン画像を含むhtmlメール
Rubyコード:
require 'mail'
def inline_body_with_attachments(html, attachments)
attachments.each do |attachment|
if (html =~ /#{attachment.filename}/)
html = html.sub(attachment.filename, "cid:#{attachment.cid}")
end
end
return html
end
mail = Mail.new({
:from => "[email protected]",
:to => "[email protected]",
:subject => "html email with inline images"
})
text_part = Mail::Part.new do
body "some text"
end
mail.text_part = text_part
# Load the attachments
attachment = "image.png"
mail.attachments[attachment] = File.read(attachment)
inline_html = inline_body_with_attachments("<b>An inline image</b><img src='image.png'/>", mail.attachments)
html_part = Mail::Part.new do
content_type 'text/html; charset=UTF-8'
body inline_html
end
mail.html_part = html_part
mail.deliver!
メールは次のようになります。
Date: Fri, 24 May 2013 13:58:02 +0000
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: test mail with attachment- raw
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_519f71eab2260_2a1d9e076471d6";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_519f71eab2260_2a1d9e076471d6
Date: Fri, 24 May 2013 13:58:02 +0000
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[email protected]>
some text
----==_mimepart_519f71eab2260_2a1d9e076471d6
Date: Fri, 24 May 2013 13:58:02 +0000
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[email protected]>
<b>An inline image</b><img src='cid:[email protected]'/>
----==_mimepart_519f71eab2260_2a1d9e076471d6
Date: Fri, 24 May 2013 13:58:02 +0000
Mime-Version: 1.0
Content-Type: image/png;
charset=UTF-8;
filename=image.png
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=image.png
Content-ID: <[email protected]>
iVBORw0KGgoAAAANSUhEUgAAASwAAABaCAYAAAACcWsdAAAXUUlEQVR4nGJk
[.... more image encoding ...]
DhwFowAXGE0go2CQAAAAAAD//wMAFOkCtHNhXPkAAAAASUVORK5CYII=
----==_mimepart_519f71eab2260_2a1d9e076471d6--
私はあなたを助けることはできませんが、私が解決しようとしてきた私の問題の解決策を提供してくれてありがとうと思います。 +1 – GoldfishGrenade
私はインラインイメージも送ろうとしていますが、 '.cid'メソッドを見つけることができません。これは別の宝石や作成されたメソッドですがここには表示されていませんか? – sylvian
あなたの体にいくつかのhtmlを追加しようとすることができますか:[ここに] [質問は回答しました(http://stackoverflow.com/questions/24273954/inline-images-with-ruby-mail-gem/24274267#24274267) – sylvian