Внедрение универсального принятия доменных имен и адресов электронной почты
Универсальное принятие доменных имен и адресов электронной почты
Универсальное принятие (UA) – это состояние, когда все допустимые доменные имена и адреса электронной почты правильно и единообразно принимаются, проверяются, хранятся, обрабатываются и отображаются любым программным обеспечением, системой или устройством.
Сегодня доменные имена могут включать строки доменов верхнего уровня, длина которых превышает длину строк привычных старых доменов (то есть более трех символов). При этом в доменных именах и адресах электронной почты теперь могут использоваться символы из набора Unicode, который гораздо шире традиционного ASCII. При этом перечень доменов верхнего уровня теперь меняется динамически.
Универсальное принятие для системных администраторов
Техническая документация
- Тестовые случаи для разработчиков для оценки систем на готовность к универсальному принятию, разработанные Группой управления по универсальному принятию (Universal Acceptance Steering Group (UASG)) (UASG004)
- Данные для тестовых случаев, описанных в UASG 004 (Data UASG004A)
- Рекомендации для системного администратора по построению сервиса электронной почты с поддержкой интернационализированных (кириллических) адресов
- Рекомендации по присвоению имен интернационализированных адресов электронной почты
Настройка EAI почтового сервиса
Инструкция по установке почтового сервера с поддержкой интернационализированных адресов под ОС FreeBSD 10.2
Установка Postfix с расширением SMTPUTF8, Cyrus SASL и OpenSSL
Почтовый сервер: общая информация
С помощью данной инструкции вы сможете установить почтовый сервер, который сможет получать почту с интернационализированных почтовых адресов за счет поддержки расширения SMTPUTF8.
Система поддерживает протоколы IMAP и POP3 при помощи почтового сервера Courier. Пользователи добавляются как локальные, с логином SSH, так и без него. Их почта хранится в папке /home/user.
Используется ОС Freebsd 10.2
Уведомление, требования и первичная установка
- Убедитесь, что у вас установлена версия Postfix не ниже 3.0
- Если вы устанавливаете какие-либо компоненты почты после установки сервера, обязательно протестируйте сервер на предмет возврата почты SMTPUTF8.
- Предварительно необходимо настроить ресурсные записи DNS, имя хоста – это имя вашего домена (например, domain.com )
- mail.hostname – это имя вашего почтового сервера (например, mail.domain.com)
Необходим рабочий сервер FreeBSD с аккаунтом root (привилегии sudo)
- Установка функционирует как root, если не указано иное
Update your hostname
Если вы используете интернационализированный домен, используйте эквивалент в кодировке punycode. Например, mail.ёпочта.рф в кодировке punycode выглядит как mail.xn--80a1acny1d.xn--p1ai
vi /etc/hostname
ОБНОВИТЕ имя хоста для почтового сервера на ВАШЕ
mail.domain.com
Перезагрузите сервер для обновления имени хоста.
После перезагрузки команда ниже покажет ваше имя хоста mail.domain.com
hostname
Установите Postfix из репозитария и необходимые библиотеки (Cyrus SASL, OPENSSL)
Найдите версию Postfix 3.0.1 или выше чтобы можно было активировать расширение SMTPUTF8. Ссылка для скачивания: http://www.postfix.org/download.html. В примере ниже мы работаем с postfix-3.0.1.tar.gz, ваша версия может отличаться. Установив Postfix с помощью apt-get, вы получите более раннюю версию, которая еще не поддерживает SMTPUTF8. В будущем это может измениться.
Установите необходимые библиотеки с помощью портов с опциями по умолчанию
cd /usr/ports/security/openssl make && make install cd /usr/ports/security/cyrus-sasl2 make && make install cd /usr/ports/devel/icu make && make install
Refresh your environment
Создайте необходимых пользователей и права на использование каталога
pw groupadd postfix -g 32 pw groupmod mail -m postfix pw groupadd postdrop pw useradd postfix -c "Postfix Daemon User" -d /var/spool/postfix -g postfix -s /bin/false -u 32 chown -v postfix:postfix /var/mail
Скачайте Postfix 3.x.x или более позднюю версию и скомпилируйте с openssl и sasl auth
tar -xzvf postfix-3.0.1.tar.gz cd postfix-3.0.1 make CCARGS="-DUSE_TLS -I/usr/include/openssl/ -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/local/include/sasl" AUXLIBS="-lssl -lcrypto -lsasl2" makefiles make
Установите Postfix
sh postfix-install -non-interactive daemon_directory=/usr/lib/postfix \ manpage_directory=/usr/share/man \ html_directory=/usr/share/doc/postfix-3.0.1/html \ readme_directory=/usr/share/doc/postfix-3.0.1/readme
Отредактируйте или обновите /etc/rc.conf как указано ниже
postfix_enable="YES" sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO"
Отредактируйте, создайте или обновите /etc/periodic.conf
daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO"
Отключите sendmail и запустите postfix
service sendmail stop postfix start
Конфигурация Postfix
Измените mail.domain.tld, domain.tld, yourotherdomain.tld
postconf -e 'myhostname = mail.domain.tld' postconf -e 'mydomain = domain.tld' postconf -e 'myorigin = $mydomain' postconf -e 'inet_interfaces = all' postconf -e 'mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24' postconf -e 'alias_database = hash:/etc/aliases' postconf -e 'alias_maps = hash:/etc/aliases' postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, yourotherdomain.tld' postconf -e 'smtputf8_enable = yes' postfix reload
@TODO
Enable Postfix as service and run at startup
Попробуйте отправить письмо с помощью Telnet и отправьте письмо на внешний сервер (например, Gmail)
Проверка, что SMTPUTF8 активирован
Введите команду для подключения к SMTP
telnet localhost 25
Результат должен быть следующий:
Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 YourHostName ESMTP Postfix
Введите следующий текст и нажмите Enter
EHLO localhost
Если в ответе вы видите 250 SMTPUTF8, то ваш сервер может отправлять и получать почту с интернационализированных адресов
250-YourHostName 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8
Если вы не видите 250 SMTPUTF8, попробуйте удалить Postfix и повторите описанную процедуру установки. Возможно, вы установили компонент, который установил старую версию Postfix.
Включение SMTP Auth
Установите saslauthd с настройками по умолчанию
cd /usr/ports/security/cyrus-sasl2-saslauthd make && make install
Отредактируйте /etc/rc.conf
saslauthd_enable="YES"
Универсальное принятие для разработчиков
Техническая документация
- Тестовые случаи для разработчиков для оценки систем на готовность к универсальному принятию, разработанные Группой управления по универсальному принятию (Universal Acceptance Steering Group (UASG)) (UASG004))
- Данные для тестовых случаев, описанных в UASG 004 (Data UASG004A)
- Обзор соответствия библиотек и фреймворков языков программирования передовым практикам универсального принятия, 2019 (UASG018)
- Результаты проверки готовности к универсальному принятию языков C, C#, Go, Java, Javascript, Python3, Rust и фреймворков, включая тестирование интернационализированной электронной почты, 2020 (UASG018A)
- Документ для оценки готовности к универсальному принятию ПО с открытым программным кодом (UASG033)
- Отчет об оценке поддержки EAI в программном обеспечении и электронной почте (UASG030)
- Отчет-продолжение UASG030 с проверкой семи дополнительных программных пакетов: Mozilla Thunderbird Beta, Xgenplus и Spamjadoo, Sendmail 8.17 alpha, Halon, Dovecot, Mailchannels и Spamassassin (UASG030A)
- Ответы на часто задаваемые вопросы (FAQ) о поддержке UA в языках программирования, а также о поддержке EAI в инструментах и службах электронной почты (UASG031 FAQs)
- Рекомендации системным администраторам электронной почты по предоставлению почтовых ящиков, настройке и управлению системами, совместимыми с интернационализированными адресами электронной почты (UASG028)
Разработчики, внедряющие в своих программных продуктах поддержку интернационализированных доменных имен и адресов электронной почты, могут получить тестовые кириллические адреса электронной почты для опытной эксплуатации и проведения тестирования — заявка на предоставление тестового кириллического email адреса
- Актуальный список проверенного программного обеспечения и сервисов с указанием их текущего статуса поддержки IDN/EAI
- Рекомендации по внедрению в программном обеспечении поддержки интернационализированных доменных имен и адресов электронной почты в домене верхнего уровня .РФ
- Рекомендации по внедрению в программном обеспечении поддержки доменных имен и адресов электронной почты c использованием символов кириллицы
Тестирование ПО на соответствие универсальному принятию
Разработчики могут проанализировать свои продукты на соответствие критериям универсального принятия и получить подтверждение такого соответствия:
- Методика анализа готовности к универсальному принятию для программного обеспечения, обрабатывающего доменные имена и e-mail
- Получение подтверждения соответствия вашего ПО или сервиса критериям универсального принятия домена .РФ