我们有一些电子邮件订阅的
Ruby On Rails应用程序.它具有继承自ActionMailer的邮件类:
class UserMailer < ActionMailer::Base ... end
一切都可以,除了一件事 – 一些用户在开始时有电子邮件地址与“ – ”.
当我尝试发送电子邮件到“[email protected]”时出现错误:
sendmail: invalid option -- u sendmail: invalid option -- s sendmail: invalid option -- u sendmail: fatal: usage: sendmail [options]
我如何逃避这个角色(或许有些类似的)ActionMailer?
谢谢
解决方法
尽管不建议使用URI.escape方法确实需要一个第二个参数,可以让您标记不安全的方式
URI.escape("[email protected]",'-') => "%[email protected]"
替换URI.escape的CGI转义似乎没有相同的功能,但对于像这样的一种情况,它可能会起作用.