diff --git a/app/jobs/domain_expire_email_job.rb b/app/jobs/domain_expire_email_job.rb index 9b70a54e6..94bd8670c 100644 --- a/app/jobs/domain_expire_email_job.rb +++ b/app/jobs/domain_expire_email_job.rb @@ -4,6 +4,10 @@ class DomainExpireEmailJob < Que::Job return if domain.registered? - DomainExpireMailer.expired(domain: domain, registrar: domain.registrar).deliver_now + if domain.force_delete_scheduled? + DomainExpireMailer.expired_soft(domain: domain, registrar: domain.registrar).deliver_now + else + DomainExpireMailer.expired(domain: domain, registrar: domain.registrar).deliver_now + end end end diff --git a/app/mailers/domain_expire_mailer.rb b/app/mailers/domain_expire_mailer.rb index ecbd8ee3d..229120825 100644 --- a/app/mailers/domain_expire_mailer.rb +++ b/app/mailers/domain_expire_mailer.rb @@ -1,19 +1,38 @@ class DomainExpireMailer < ApplicationMailer + attr_accessor :domain, :registrar + def expired(domain:, registrar:) - @domain = domain_presenter(domain: domain) - @registrar = registrar_presenter(registrar: registrar) + process_mail(domain: domain, registrar: registrar, method_name: __method__.to_s) + end - recipient = filter_invalid_emails(emails: domain.primary_contact_emails, domain: domain) - subject = default_i18n_subject(domain_name: domain.name) - - logger.info("Send DomainExpireMailer#expired email for domain #{domain.name} (##{domain.id})" \ - " to #{recipient.join(', ')}") - - mail(to: recipient, subject: subject) + def expired_soft(domain:, registrar:) + process_mail(domain: domain, registrar: registrar, method_name: __method__.to_s) end private + def process_mail(domain:, registrar:, method_name:) + init(domain, registrar) + + logger.info("Send DomainExpireMailer##{method_name} email for #{domain.name} (##{domain.id})" \ + " to #{recipient(domain).join(', ')}") + + mail(to: recipient(domain), subject: subject(method_name)) + end + + def init(domain, registrar) + @domain = domain_presenter(domain: domain) + @registrar = registrar_presenter(registrar: registrar) + end + + def recipient(domain) + filter_invalid_emails(emails: domain.primary_contact_emails, domain: @domain) + end + + def subject(method_name) + I18n.t("domain_expire_mailer.#{method_name}.subject", domain_name: @domain.name) + end + def domain_presenter(domain:) DomainPresenter.new(domain: domain, view: view_context) end diff --git a/app/views/mailers/domain_expire_mailer/expired_soft.html.erb b/app/views/mailers/domain_expire_mailer/expired_soft.html.erb new file mode 100644 index 000000000..1dd661a38 --- /dev/null +++ b/app/views/mailers/domain_expire_mailer/expired_soft.html.erb @@ -0,0 +1,48 @@ +

Domeen <%= @domain.name %> on aegunud ning suunatud kustutusmenetlusse kuna oleme tuvastanud domeeniga seotud kontaktides olulisi puudusi.

+ +

Lugupeetud .ee domeeni registreerija/halduskontakt

+ +

Domeeninimi <%= @domain.name %> on aegunud ja ei ole alates <%= @domain.on_hold_date %> internetis kättesaadav. Domeeniga on seotud puudulike kontakti objekte, milles tulenevalt on Eesti Interneti SA blokeerinud domeeni pikendamise ja registripidaja vahetuse, kuniks kontaktandmed korrastatakse. Andmete korrastamiseks ja registreeringu pikendamiseks pöörduge palun oma registripidaja poole.

+ +

<%= @domain.name %> pikendamata jätmisel domeen kustub ja läheb <%= @domain.delete_date %> oksjonile .ee oksjonikeskkonda. Domeenioksjonite kohta loe lähemalt siit.

+ +

Domeeni <%= @domain.name %> registripidaja:

+<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %> + +

Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist.

+ +<%= render 'mailers/shared/signatures/signature.et.html' %> + +
+ +

Domain <%= @domain.name %> has expired

+ +

Dear registrant/administrative contact of .ee domain,

+ +

The domain name <%= @domain.name %> has expired and since <%= @domain.on_hold_date %> is no longer available on the Internet. Domain registration has invalid contact data. Renewal and registrar transfer is therefore prohibited until contact data has been fixed. To correct the data and renew your domain registration, please contact your registrar.

+ +

If you do not renew the <%= @domain.name %> domain registration, it is deleted and put on auction to .ee domain auction environment at <%= @domain.delete_date %>. Read more about .ee domain auctions here.

+ +

Registrar of the <%= @domain.name %>:

+<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %> + +

You can find an overview of all your domains at the registrant's portal.

+ +<%= render 'mailers/shared/signatures/signature.en.html' %> + +
+ +

Срок действия домена <%= @domain.name %> истек

+ +

Уважаемый регистрант/административный контакт домена .ee

+ +

Срок действия доменного имени <%= @domain.name %> истек, и с <%= @domain.on_hold_date %> оно больше не доступно в интернете. У домена указаны неверные контактные данные. Обновление и перенос к другому регистратору заблокированы до исправления контактных данных. Для исправления контактных данных и обновления регистрации вашего домена, пожалуйста, обратитесь в вашему регистратору.

+ +

Если доменное имя не продлено, домен <%= @domain.name %> будет удален и <%= @domain.delete_date %> идет на аукцион в .ee среду аукциона. О проведении доменных аукционов читайте здесь.

+ +

Pегистратор домена <%= @domain.name %>:

+<%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %> + +

Обзор всех связанных с вами доменов можете получить на портале регистратора.

+ +<%= render 'mailers/shared/signatures/signature.ru.html' %> diff --git a/app/views/mailers/domain_expire_mailer/expired_soft.text.erb b/app/views/mailers/domain_expire_mailer/expired_soft.text.erb new file mode 100644 index 000000000..0e6d9c953 --- /dev/null +++ b/app/views/mailers/domain_expire_mailer/expired_soft.text.erb @@ -0,0 +1,48 @@ +Domeen <%= @domain.name %> on aegunud ning suunatud kustutusmenetlusse kuna oleme tuvastanud domeeniga seotud kontaktides olulisi puudusi. + +Lugupeetud .ee domeeni registreerija/halduskontakt + +Domeeninimi <%= @domain.name %> on aegunud ja ei ole alates <%= @domain.on_hold_date %> internetis kättesaadav. Domeeniga on seotud puudulike kontakti objekte, milles tulenevalt on Eesti Interneti SA blokeerinud domeeni pikendamise ja registripidaja vahetuse, kuniks kontaktandmed korrastatakse. Andmete korrastamiseks ja registreeringu pikendamiseks pöörduge palun oma registripidaja poole. + +<%= @domain.name %> pikendamata jätmisel domeen kustub ja läheb <%= @domain.delete_date %> oksjonile .ee oksjonikeskkonda. Domeenioksjonite kohta loe lähemalt siit https://www.internet.ee/domeenioksjonid. + +Domeeni <%= @domain.name %> registripidaja: +<%= render 'mailers/shared/registrar/registrar.et.html', registrar: @registrar %> + +Ülevaate kõikidest endaga seotud domeenidest saate registreerija portaalist https://registrant.internet.ee/registrant/. + +<%= render 'mailers/shared/signatures/signature.et.html' %> + +-------------------------------------- + +Domain <%= @domain.name %> has expired + +Dear registrant/administrative contact of .ee domain, + +The domain name <%= @domain.name %> has expired and since <%= @domain.on_hold_date %> is no longer available on the Internet. Domain registration has invalid contact data. Renewal and registrar transfer is therefore prohibited until contact data has been fixed. To correct the data and renew your domain registration, please contact your registrar. + +If you do not renew the <%= @domain.name %> domain registration, it is deleted and put on auction to .ee domain auction environment at <%= @domain.delete_date %>. Read more about .ee domain auctions here https://www.internet.ee/domains/auction-environment-user-agreement#3-terms-and-conditions-for-participation-in-the-auction-of-the-auction-environment. + +Registrar of the <%= @domain.name %>: +<%= render 'mailers/shared/registrar/registrar.en.html', registrar: @registrar %> + +You can find an overview of all your domains at the registrant's portal https://registrant.internet.ee/registrant/. + +<%= render 'mailers/shared/signatures/signature.en.html' %> + +-------------------------------------- + +Срок действия домена <%= @domain.name %> истек + +Уважаемый регистрант/административный контакт домена .ee + +Срок действия доменного имени <%= @domain.name %> истек, и с <%= @domain.on_hold_date %> оно больше не доступно в интернете. У домена указаны неверные контактные данные. Обновление и перенос к другому регистратору заблокированы до исправления контактных данных. Для исправления контактных данных и обновления регистрации вашего домена, пожалуйста, обратитесь в вашему регистратору. + +Если доменное имя не продлено, домен <%= @domain.name %> будет удален и <%= @domain.delete_date %> идет на аукцион в .ee среду аукциона. О проведении доменных аукционов читайте здесь https://www.internet.ee/domeny/dogovor-pol-zovatelya-aukcionnoj-sredy#3-usloviya-uchastiya-v-aukcione. + +Pегистратор домена <%= @domain.name %>: +<%= render 'mailers/shared/registrar/registrar.ru.html', registrar: @registrar %> + +Обзор всех связанных с вами доменов можете получить на портале регистратора https://registrant.internet.ee/registrant/. + +<%= render 'mailers/shared/signatures/signature.ru.html' %> diff --git a/config/locales/mailers/domain_expire.en.yml b/config/locales/mailers/domain_expire.en.yml index 9a83a7a32..36353a44e 100644 --- a/config/locales/mailers/domain_expire.en.yml +++ b/config/locales/mailers/domain_expire.en.yml @@ -4,4 +4,9 @@ en: subject: >- Domeen %{domain_name} on aegunud / Domain %{domain_name} has expired - / Срок действия домена %{domain_name} истек \ No newline at end of file + / Срок действия домена %{domain_name} истек + expired_soft: + subject: >- + Domeen %{domain_name} on aegunud ning suunatud kustutusmenetlusse + / Domain %{domain_name} has expired and directed into deletion process + / Срок действия домена %{domain_name} истек diff --git a/test/mailers/domain_expire_mailer_test.rb b/test/mailers/domain_expire_mailer_test.rb index 1502bf2f6..84e520b78 100644 --- a/test/mailers/domain_expire_mailer_test.rb +++ b/test/mailers/domain_expire_mailer_test.rb @@ -8,7 +8,18 @@ class DomainExpireMailerTest < ActionMailer::TestCase email = DomainExpireMailer.expired(domain: domain, registrar: domain.registrar).deliver_now assert_emails 1 - assert_equal 'Domeen shop.test on aegunud / Domain shop.test has expired' \ - ' / Срок действия домена shop.test истек', email.subject + assert_equal I18n.t("domain_expire_mailer.expired.subject", domain_name: domain.name), + email.subject end -end \ No newline at end of file + + def test_delivers_domain_expiration_soft_email + domain = domains(:shop) + assert_equal 'shop.test', domain.name + + email = DomainExpireMailer.expired_soft(domain: domain, registrar: domain.registrar).deliver_now + + assert_emails 1 + assert_equal I18n.t("domain_expire_mailer.expired_soft.subject", domain_name: domain.name), + email.subject + end +end diff --git a/test/mailers/previews/domain_expire_mailer_preview.rb b/test/mailers/previews/domain_expire_mailer_preview.rb index bec206c0f..4d66d2fad 100644 --- a/test/mailers/previews/domain_expire_mailer_preview.rb +++ b/test/mailers/previews/domain_expire_mailer_preview.rb @@ -4,4 +4,10 @@ class DomainExpireMailerPreview < ActionMailer::Preview DomainExpireMailer.expired(domain: domain, registrar: domain.registrar) end -end \ No newline at end of file + + def expired_soft + domain = Domain.first + DomainExpireMailer.expired_soft(domain: domain, + registrar: domain.registrar) + end +end