11

我们有 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 逃脱这个角色(也许还有一些类似的角色)?

谢谢

4

1 回答 1

1

URI.escape 方法虽然已被弃用,但确实需要第二个参数,让您可以像这样标记不安全的内容

URI.escape("-user@mailinator.com", '-')
=> "%2Duser@mailinator.com"

替换 URI.escape 的 CGI 转义似乎没有相同的功能,但对于像这样的单个情况,它可能会起作用。

于 2017-01-20T21:57:01.380 回答