gpt4 book ai didi

html - Rails Mailer 自定义动态内容

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:11 25 4
gpt4 key购买 nike

我最近加入了一个项目,其中每个客户都有自己的自定义 HTML 内容,用于发送给他们客户的电子邮件。

它通过将内容插入带有自定义标签的字符串,然后通过在邮件程序中设置 body 属性来发送,如下所示:

mail(:from         => from_email,
:reply_to => from_email,
:to => to_email,
:subject => subject,
:body => (html_text.empty?) ? plain_text : html_text,
:content_type => (html_text.empty?) ? 'text/plain' : 'text/html',
)

要添加的一项功能是包含内联图像;但是 - 通过手动将 content_type 设置为“text/plain”或“text/html”,电子邮件无法正确呈现,并且图像也无法正确附加(整个电子邮件的 content_type 似乎搞砸了): messed up content_type email .

删除此显式 content_type 后,图像已正确附加,但内联图像未显示(占位符被换成使用附加图像的 image_tag),因为内容似乎没有被解释为 HTML,例如邮件的内容是:

Dolor eligendi doloremque et.
<img alt="Signature Image" src="cid:5225b25b53818_b4213fc5ce0349d0975f@localhost.mail" />

如何让电子邮件正确地将内容解释为 HTML 而不会弄乱内联图像内容类型?

最佳答案

即使是动态内容;让 Rails 为您完成繁重的工作。将内容传递到要呈现的空 View 模板而不是将正文传递到邮件方法意味着您的所有内容类型都是隐式设置的。

之后,邮件程序不应直接传递内容,只留下:

mail(:from         => from_email,
:reply_to => from_email,
:to => to_email,
:subject => subject
)

或者试试这个,

 mail(:from => from_email,:reply_to => from_email) do |format|
format.html { render 'another_template' }
format.text { render 'another_template' }
end

它将创建一个包含 html 和文本部分的多部分电子邮件。这将允许纯文本客户端使用该部分呈现它,而基于 html 的客户端也可以正确呈现它。

关于html - Rails Mailer 自定义动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com