#12 楼 @gengdejie 你好,暂时不招了。
#8 楼 @dawn_chen 欢迎!你在哪儿上学?
@lgn21st 多谢老吕。
@huacnlee 麻烦审核一下!
对,这都不是问题。
在帖子的最后。请发邮件给我就行:[email protected]
题外话:我的原帖中,标题中的中英文间并没有空格,发表后发现系统自动给我加了空格。这是怎么回事?
感谢各位,问题已解决!
做法是不要给 dj 传递要发送的@body
变量,而是把整个email
对象都丢给它,这样它就不会过滤 HTML 了。
原来是:
UserMailer.delay(run_at: interval.seconds.from_now).dm(r, self.title, self.body)
现在是:
UserMailer.delay(run_at: interval.seconds.from_now).dm(r, self)
大概找到原因了。如果用 delayed_job 发邮件,内容就会被过滤,直接发就没问题。
@body
是从 emails_controller 的表单中提交上来的。
提交上来后,我会把它记录到数据库里,然后生成邮件并发出去。
我刚才看了一下数据库中的记录,看起来没问题:
e.body
=> "<p>你好,我们邀请你首先试用
谢谢 Daniel,补充一些信息:
1.模板的确是.html.erb 格式的;
2.body 标签里面还有一些其它的 HTML 标签,并且引入了 partial,这两部分的 HTML 都被正确的处理了;
3.只有这个@body
变量不行。
这里是这个模板 body 部分的代码:
<body>
<%= @body.html_safe %>
<%= render "user_mailer/sender" %>
<%= render partial: "user_mailer/unsubscribe", locals: {user: @user, notification_type: @notification} %>
</body>