mirror of
https://github.com/internetee/registry.git
synced 2025-06-06 04:37:30 +02:00
24 lines
758 B
Ruby
24 lines
758 B
Ruby
class Interceptors::PunycodeInterceptor
|
|
class << self
|
|
def delivering_email(message)
|
|
message.from = encode_addresses_as_punycode(message.from)
|
|
message.to = encode_addresses_as_punycode(message.to)
|
|
message.cc = encode_addresses_as_punycode(message.cc) if message.cc
|
|
message.bcc = encode_addresses_as_punycode(message.bcc) if message.bcc
|
|
end
|
|
|
|
private
|
|
|
|
def encode_addresses_as_punycode(addresses)
|
|
addresses.map do |address|
|
|
local_part, domain_part = address.split('@')
|
|
domain_part = encode_domain_part_as_punycode(domain_part)
|
|
[local_part, '@', domain_part].join
|
|
end
|
|
end
|
|
|
|
def encode_domain_part_as_punycode(domain_part)
|
|
SimpleIDN.to_ascii(domain_part)
|
|
end
|
|
end
|
|
end
|