【发布时间】:2012-11-22 15:24:04
【问题描述】:
我们有 Ruby On Rails 应用程序和一些电子邮件订阅。它具有从 ActionMailer 继承的邮件程序类:
class UserMailer < ActionMailer::Base
...
end
一切正常,除了一件事 - 一些用户的电子邮件地址以“-”开头。 当我尝试向“-user@mailinator.com”发送电子邮件时出现错误:
sendmail: invalid option -- u
sendmail: invalid option -- s
sendmail: invalid option -- u
sendmail: fatal: usage: sendmail [options]
我怎样才能为 ActionMailer 转义这个角色(可能还有一些类似的角色)?
谢谢
【问题讨论】:
-
你需要转义这个特殊字符,因为它是所有 bash/shell 命令中的选项字符
-
许多 unix 命令在
--参数之后停止解析参数。也许你可以重新配置 sendmail 调用代码来做到这一点? -
感谢您的建议。我尝试添加一些转义: - 添加
` and additional"` 或'没有帮助(发送到 "\"-user@mailinator.com\""、"\-user@mailinator.com" 和 " -\'user@mailinator.com\'" 已发送,但 "-user@mailinator.com" 的收件箱仍然为空) - 添加/意外有帮助:电子邮件发送到 "/-user@mailinator.com" 并发送到“-user@mailinator.com”。我也会尝试在应用程序中覆盖 sendmail 方法。 -
这应该是 Github 上的问题 - 它应该转义这些字符,尽管它仅在 config.delivery_method 为 :sendmail 时出现 - 使用 :sendmail 仍然是一个 rails-core .. 或者实际上是 ActionMailer。 .
标签: ruby-on-rails actionmailer