Ruby on rails RubyonRails邮件程序和非unicode域(.р;ф;)
我的rails应用程序使用俄语cyrryllic域名(.Пф),我有mailer,其中我有来自第节的默认值 像这样:Ruby on rails RubyonRails邮件程序和非unicode域(.р;ф;),ruby-on-rails,ruby,unicode,dns,ruby-1.8,ruby-2.0,Ruby On Rails,Ruby,Unicode,Dns,Ruby 1.8,Ruby 2.0,我的rails应用程序使用俄语cyrryllic域名(.Пф),我有mailer,其中我有来自第节的默认值 像这样: default from: "noreply@портал.рф" mailer的某些部分: class CarMailer < ActionMailer::Base default from: "noreply@портал.рф" def send_car_question_back(question_text, question_email, que
default from: "noreply@портал.рф"
mailer的某些部分:
class CarMailer < ActionMailer::Base
default from: "noreply@портал.рф"
def send_car_question_back(question_text, question_email, question_phone, car_user, car)
****
mail(to: @question_email, subject: "***")
end
end
'xn----7s454545*******i'
是西里尔语域的正常域编码,正是非ASCII域。中介绍了域名转换方法
您的邮箱不支持非ASCII域转换。因此,您可以尝试在mailer设置中将域名设置为西里尔字母,并使用IDNA转换gems将其转换为ASCII格式:
config.action_mailer.smtp_settings = {
#...
:domain => IDN::Idna.toASCII('портал.рф')
}
反之亦然:
puts 'Idna.toUnicode: ' + IDN::Idna.toUnicode('xn--rksmrgs-5wao1o.josefsson.org')
什么意思<代码>noreply@xn----7s454545****i?这是西里尔语域的正常域编码
'xn----7s454545****i'
,完全适用于非ascii域。你可以知道你的域ПБааа.Пф
Keephorch选中此项:@asiniy这不是同一个问题。反之亦然:-这是什么?反之亦然是从ascci字符串到unicode的转换。@brabertaser1992返回simpleDN.到ascii(“ПöПааа?@brabertaser1992simpledn.to_ascii(“Паааа.аф”)
应该返回类似'xn----7s454545****i'
@МааъСъъ的内容,但我想要俄语文本。。。(
config.action_mailer.smtp_settings = {
#...
:domain => IDN::Idna.toASCII('портал.рф')
}
puts 'Idna.toUnicode: ' + IDN::Idna.toUnicode('xn--rksmrgs-5wao1o.josefsson.org')
require 'idn'
SimpleIDN.to_ascii("портал.рф")
SimpleIDN.to_unicode("xn--mllerriis-l8a.com")