我正在使用mail gem使用此代码发送带有UTF-8内容的电子邮件
Mail.defaults do
...
end
Mail.deliver do
from "user@example.com"
to "otheruser@example.com"
subject "Mäbülö..."
body "Märchenbücher lösen Leseschwächen."
end
Run Code Online (Sandbox Code Playgroud)
这有效,但会发出警告
Non US-ASCII detected and no charset defined.
Defaulting to UTF-8, set your own if this is incorrect.
Run Code Online (Sandbox Code Playgroud)
现在经过多次尝试,咨询邮件gem生成的文档以及源代码,我仍然无法设置charset.charset=Message.rb中有一个方法,但是当我添加对charset的调用时,如下所示:
Mail.deliver do
from "user@example.com"
to "otheruser@example.com"
charset "UTF-8"
subject "Mäbülö..."
body "Märchenbücher lösen Leseschwächen."
end
Run Code Online (Sandbox Code Playgroud)
我得到这个ArgumentError:
/usr/local/lib/ruby/gems/1.9.1/gems/mail-2.4.4/lib/mail/message.rb:1423:in `charset': wrong number of arguments (1 for 0) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
如何在交付块中设置字符集?
max*_*dec 10
mail.charset() 返回当前字符集,它不允许设置一个并且不接受任何参数.
为此,您需要使用 mail.charset = ...
它实际上可能在块内:
Mail.deliver do
from "user@example.com"
to "otheruser@example.com"
subject "Mäbülö..."
body "Märchenbücher lösen Leseschwächen."
charset = "UTF-8"
end
Run Code Online (Sandbox Code Playgroud)
没有块也可以:
mail = Mail.new
mail.charset = 'UTF-8'
mail.content_transfer_encoding = '8bit'
mail.from = ...
mail.to = ...
mail.subject = ...
mail.text_part do
body ...
end
mail.html_part do
content_type 'text/html; charset=UTF-8'
body ...
end
mail.deliver!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4958 次 |
| 最近记录: |