Rails ActionMailer“漂亮名称”防止发送

17

我想发送一封邮件,让发件人显示为“我的名字”,而不是“my@email.com”。

在我的“User_Mailer”类中,我有以下代码行:

default :from => "me@email.com"

使用这个设置一切正常。但如果将其更改为下面任何一个选项,则无法到达收件人。

default :from => "Name <me@email.com>"
default :from => '"Name" <me@email.com>'
default :from => "\"Name\" <me@email.com>"

......清单还在继续。

那行代码的语法应该是什么?我感觉我已经尝试了所有可能性。

3个回答

19

我不知道是否在转录过程中出现了问题,但第一种替代方案可能可以,但是后两种甚至不是有效的Ruby语法。

无论如何,如果您查看Rails ActionMailer - format sender and recipient name/email address,接受的答案暗示您需要在字符串内引用地址的“名称”部分,例如'"Name" <me@email.com>'

然而,https://dev59.com/onNA5IYBdhLWcg3wcddk#8106387上的一个高赞回答表明,内部引号并非必需,您的第一种替代格式完全可以。

我在ActionMailer文档中找不到任何信息。


是的,问题中有一个错别字 - 我太累了,到了极限。我确信我实际上尝试过很多次 '"Name" <me@email.com>',但我确定它没有起作用。无论如何,现在似乎可以了。真的很奇怪,可能是睡眠或重新启动Rails服务器解决了它!(或者可能只是一个持久性的错别字。) - Charlie Egan
如果你想使用像 Hi @ yall! <3 这样的名称,那么可以这样写: "\"Hi @ yall! <3\" <me@email.com>"。这非常有价值。 - Automatico

7

你上一次尝试已经很接近了,只需要在名称周围转义闭合的"即可。

default :from => "\"Name\" <me@email.com>"

这似乎也可以工作!奇怪的是,在一些睡眠后也可以...我的问题中也有一个错别字 - 我确定我尝试过这个。我不确定是睡觉还是重新启动Rails服务器有所帮助,但某些事情已经改变了。干杯。 - Charlie Egan

0

以下是我的代码,它能够正常运行

default from: "name<me@email.com>"

注意:

  • name后面没有空格。

  • 非ASCII字符的名称无法使用,例如:中文字符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接