【发布时间】:2011-12-16 14:42:04
【问题描述】:
我有一个 ActionMailer 控制器应该发送这个文件:
/user_mailer/welcome_email.text.erb
这是文件的(示例)内容:
Welcome to znood.com, <%= @user.name %>
You have successfully signed up to znood.com,
Your username is: <%= @user.email %>.
To login to the site, just follow this link: <%= @url %>.
Thanks for joining and have a great day!
The Znood Team
[编辑] 这是控制器中的代码:
def sendmail
@user = User.first
UserMailer.welcome_email(@user).deliver
render "user_mailer/welcome_email.text"
#render the file to see what we're supposed to send
end
这是 UserMailer
def welcome_email(user)
@user = user
@url = "http://znood.com/"
mail(:to => user.email, :subject => "Welcome to Znood!")
end
这是我收到的电子邮件:
Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusernameis:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam
知道如何包含空格、回车和换行吗?
[编辑] 安装 letter_opener gem 后,我在控制台中看到以下内容:
----==_mimepart_4ea9882a2735c_1c782d964bc18193
Date: Thu, 27 Oct 2011 19:34:50 +0300
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <4ea9882a2d8ee_1c782d964bc18277@lenovo-PC.mail>
Welcometoznood.com,AbdoAchkarYouhavesuccessfullysigneduptoznood.com,Yourusername
is:blabla.Tologintothesite,justfollowthislink:http://znood.com/.Thanksforjoiningandhaveagreatday!TheZnoodTeam
我尝试更改“Content-Transfer-Encoding”标头,但它们似乎没有改变。我也尝试为它设置一个默认值。看起来我们被 7 位编码困住了。
[已编辑] 另一个应该帮助我们找到问题的方法是,我尝试将以下参数传递给邮件函数,以查看文件渲染器是否有问题:
mail(:to => user.email, :subject => "Welcome to Znood!") do |format|
#format.text(:content_transfer_encoding => "base64")
format.text { render :text => "Hello there!" }
end
“你好!”也整理出来了。
然后我尝试了下面的代码来确定是渲染函数还是邮件函数导致了错误。
mail(:to => user.email, :subject => "Welcome to Znood!") do |format|
format.text { "hello there!" }
end
也整理出来了。
【问题讨论】:
-
源模板中的CRLF是什么?
-
我不太清楚,但我认为如果我们解决空间问题并解决它,我们也会解决 CRLF 问题 =)
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 actionmailer