如果:to字段有逗号,ActionMailer不能正确发送电子邮件

Chr*_*ini 6 email actionmailer ruby-on-rails-3

我的一个邮件看起来像这样:

mail(:from => "Support Team <support@email.com>",
     :to => "#{@user.alias} <#{@user.email}>",
     :subject => 'Verification Email')
Run Code Online (Sandbox Code Playgroud)

但是,如果用户的别名是"Foobar,Bar",那么电子邮件实际上会被发送到:Foobar, Bar <foobar@gmail.com>.即foobar和作曲家.

我认为问题在于"Foobar,Bar"中的逗号.这需要转义还是什么?

我的邮件应该是这样的:

mail(:from => "Support Team <support@email.com>",
     :to => @user.email,
     :subject => 'Verification Email')
Run Code Online (Sandbox Code Playgroud)

Sim*_*yer 9

当然,电子邮件标题的名称部分中的空格(以及可能的逗号)必须包含在引号内.

引用名称有时是可选的,但从不禁止,因此为简单起见,请尝试:

mail(:from => "\"Support Team\" <support@email.com>",
     :to => "\"#{@user.alias}\" <#{@user.email}>",
     :subject => 'Verification Email')
Run Code Online (Sandbox Code Playgroud)

编辑为了完整性,我添加了转义引号from,因为它们也应该是必要的.

  • 添加名称根本不会影响传递(除非它以无效的方式完成并破坏了消息)。这是个人选择。对于“收件人”地址,如果您想帮助收件人识别彼此(或在查看已发送的项目时帮助您),则仅与使用名称相关。收到错误填写自己姓名的消息可能会很烦人,因此最好全面使用“收件人”中的电子邮件地址。在“发件人”中包含姓名有助于收件人了解您的身份。它通常看起来比只是一个电子邮件地址更好,所以如果你能在“发件人”中包含你的名字,我会这样做。 (2认同)