【发布时间】:2017-12-20 07:48:35
【问题描述】:
在我的 Ruby on Rails 应用程序中,我有一个 Mailer 类,它使用用户定义的 from 标头发送电子邮件:
def hello_email(user)
@user = user
from_email = %("#{@user.name}" <#{@user.email}>)
to_email = "foo@bar.com"
mail(from: from_email, to: to_email, subject: 'Hello everybody')
end
我正在使用此代码的稍微不同的版本,并将它们与Sucker Punch 一起交付。
我遇到的问题是当@user.name 格式错误时,邮件方法会静默失败,例如包含一个逗号,在日志中生成一个Net::SMTPSyntaxError 504 5.5.2。
防止这种情况的最佳方法是什么?我想在User 类中编写一个验证方法,将某些字符列入黑名单或白名单,但我不知道哪些字符。到目前为止,唯一引起问题的字符是逗号。而且追踪起来完全不同。
感谢您的帮助。
【问题讨论】:
-
发送的电子邮件是不带全名的东西,只是使用电子邮件,还是使用“干净”的全名?我认为
504 5.5.2与“来自电子邮件”或您的 smtp 服务器坏或其他有关,尽管我可能错了 -
@SimpleLime:是的,你完全正确。造成麻烦的是
from地址,而不是to地址。我更正了我最初的帖子。谢谢。
标签: ruby-on-rails email actionmailer email-headers