首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails邮件和非unicode域(.рф)

问rails邮件和非unicode域(.рф)
EN

Stack Overflow用户
提问于 2014-04-30 10:28:48
回答 1查看 702关注 0票数 3

我的rails应用程序使用俄罗斯的.рф域名,在那里我有邮件,在那里我有默认的.

就像这样:

代码语言:javascript
复制
  default from: "noreply@портал.рф"

邮递员的某些部分:

代码语言:javascript
复制
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

但是在我的邮箱里,我没有回复@blablabla,上面有一些strane号码(比如垃圾邮件:)

是否有任何方式发送邮件,并把发送者的西兰地格式?

在忏悔中我有:

代码语言:javascript
复制
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' }
EN

回答 1

Stack Overflow用户

发布于 2014-04-30 10:59:50

该'xn----7s454545*****i'是西里尔域的正常域编码,确切地说是非ASCII域.域名转换方法用RFC 3490描述。

您的邮箱只是不支持非ASCII域转换。因此,您只需尝试将mailer设置中的域名设置为cyrillic域名,并使用IDNA转换宝石将其转换为ASCII表单:

  1. 对于ruby-1.8,它是创业板。 要求'idn‘

和环境配置:

代码语言:javascript
复制
    config.action_mailer.smtp_settings =  {
      #...
      :domain         => IDN::Idna.toASCII('портал.рф')
    }

反之亦然:

代码语言:javascript
复制
    puts 'Idna.toUnicode: ' + IDN::Idna.toUnicode('xn--rksmrgs-5wao1o.josefsson.org')
  1. 对于ruby-2.0,您必须使用创业板。 需要'idn‘SimpleIDN.to_ascii("портал.рф") SimpleIDN.to_unicode("xn--mllerriis-l8a.com")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23385694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档