use*_*054 5 ruby email iphone html-email
我希望有人可以帮助我解决我在下面的代码中出错的问题 - 我的电子邮件被发送,图像在大多数电子邮件客户端(gmail web,android)中正确内联,但它在iphone上无法正常呈现ipad:仅显示最后附加的图片,不显示任何html内容或文本内容.我理解每个电子邮件客户端解释和呈现不同的有效负载,我不知道如何使它在iPhone上工作.
任何帮助赞赏!
红宝石代码:
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 => "foo@bar.com",
:to => "you@gmail.com",
: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!
Run Code Online (Sandbox Code Playgroud)
电子邮件看起来像:
Date: Fri, 24 May 2013 13:58:02 +0000
From: foo@bar.com
To: you@gmail.com
Message-ID: <519f71eab9175_2a1d9e0764742c@foo.com.mail>
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: <519f71eab3e04_2a1d9e076472b9@foo.com.mail>
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: <519f71eab692b_2a1d9e076473d4@foo.com.mail>
<b>An inline image</b><img src='cid:519f71eab047e_2a1d9e07647047@foo.com.mail'/>
----==_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: <519f71eab047e_2a1d9e07647047@foo.com.mail>
iVBORw0KGgoAAAANSUhEUgAAASwAAABaCAYAAAACcWsdAAAXUUlEQVR4nGJk
[.... more image encoding ...]
DhwFowAXGE0go2CQAAAAAAD//wMAFOkCtHNhXPkAAAAASUVORK5CYII=
----==_mimepart_519f71eab2260_2a1d9e076471d6--
Run Code Online (Sandbox Code Playgroud)
我不确定这是否有帮助,但我几乎遵循了您的代码,并且它可以在我的 iPhone 5 上运行。我正在发送到 Microsoft Exchange 服务器。
require 'mail'
mail = Mail.deliver do
to 'myaddress@domain.com'
from 'test@domain.com'
subject 'Inline Image test'
add_file './banner.png'
pic = attachments['banner.png']
html_part do
content_type 'text/html; charset=UTF-8'
body "<img width=597 height=162 id='Banner0' src='cid:#{pic.cid}'>"
end
end
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
归档时间: |
|
查看次数: |
2836 次 |
最近记录: |