Подтвердить что ты не робот

Проблемы с сообщениями электронной почты начинаются с "-" (тире)

У нас есть приложение 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?

Спасибо

4b9b3361

Ответ 1

Метод URI.escape, хотя и устаревший, принимает второй параметр, который позволяет вам отметить, что такое небезопасное

URI.escape("[email protected]", '-')
=> "%[email protected]"

CGI escape, который заменяет URI.escape, похоже, не имеет одинаковой функциональности, но для одного такого случая он может работать.