gpt4 book ai didi

ruby-on-rails - ruby on rails 邮件程序和非 unicode 域 (.рф)

转载 作者:数据小太阳 更新时间:2023-10-29 08:47:28 26 4
gpt4 key购买 nike

我的 Rails 应用程序使用俄语 cyrrylic 域名 (.рф),我有邮件程序,其中我有默认部分...

像这样:

  default from: "noreply@портал.рф"

邮件程序的一部分:

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

但是在我的邮箱里我收到了 noreply@blablabla 和一些奇怪的数字(比如垃圾邮件 :)

有什么方法可以发送邮件,并将发件人设置为西里尔格式?

在环境配置中我有:

config.action_mailer.smtp_settings =  {
:enable_starttls_auto => false,
:address => 'localhost',
:port => 25,
:domain => 'xn----7s454545*****i',
:authentication => :login,
:content_type => "text/html",
:user_name => 'noreply@xn----7s454545*****i',
:password => '*****'
}
config.action_mailer.default_url_options = { :host => 'xn----7s454545*****i' }

最佳答案

'xn----7s454545*****i' 是西里尔域的正常域编码,完全适用于非 ASCII 域。 RFC 3490 中描述了域名转换方法。 .

您的邮箱不支持非ASCII域名转换。所以你可以尝试在邮件设置中将域名设置为西里尔文,并使用 IDNA 转换 gems 将其转换为 ASCII 形式:

  1. 它是 idn gem .

     require 'idn'

和环境配置:

    config.action_mailer.smtp_settings =  {
#...
:domain => IDN::Idna.toASCII('портал.рф')
}

反之亦然:

    puts 'Idna.toUnicode: ' + IDN::Idna.toUnicode('xn--rksmrgs-5wao1o.josefsson.org')
  1. 你必须使用 simpleidn gem .

     require 'idn'

    SimpleIDN.to_ascii("портал.рф")

    SimpleIDN.to_unicode("xn--mllerriis-l8a.com")

关于ruby-on-rails - ruby on rails 邮件程序和非 unicode 域 (.рф),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23385694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com