mirror of
https://github.com/internetee/registry.git
synced 2025-08-03 08:22:05 +02:00
Encode domain parts of all addresses in mailers as punycode
This commit is contained in:
parent
25d5d12cfe
commit
86b7b1d19f
4 changed files with 46 additions and 7 deletions
24
app/mailers/interceptors/punycode_interceptor.rb
Normal file
24
app/mailers/interceptors/punycode_interceptor.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
class 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
|
Loading…
Add table
Add a link
Reference in a new issue