Перенос почты для домена с Google на Яндекс

Фирменный сувенир Яндекса

В патриотическом порыве взвесив „за“ и „против“, в начале этого года перенёс почту в своём домене с Google на Яндекс.
Зачем? Причины могут быть у каждого свои: может быть, вы любите ФСБ больше, чем NSA, вы не хотите платить Google за то, что Яндекс предлагает бесплатно, или вам просто нравится Яндекс...
Для меня было важно следующее:
1. Более быстрая доставка почты от адресатов в России
(Почтовые серверы Яндекса расположены в России)
2. Не заблокирован в Китае
3. Неограниченный объём почтового ящика (в бесплатной версии Google Apps – до 15 Gb)
Цена сервиса меня в частности не волновала, т.к. Google Apps for Domain зарегистрировал ещё в те времена, когда было можно зарегистрировать бесплатную „семейную“ версию. Но сейчас это немаловажно, согласен.

Так или иначе, вы решили перенести почту с Гугла на Яндекс. Как это сделать?

Первым делом, составим план действий.

План перехода

А. Экспорт данных в почте Google для домена
Б. Подключение домена к ПДД Яндекса
В. Импорт данных в Яндекс
Г. Завершение настройки почты в Яндексе
Д*. Настройка EAS и Push-уведомлений для почты

Теперь подробнее о том, что нужно сделать на каждом этапе.

А. Экспорт данных в почте Google для домена

1. Составить список активных почтовых ящиков и их alias′ов (псевдонимов) в почте Google для домена

Это поможет не потерять ни один из ящиков и воссоздать их впоследствии в ПДД (почта для домена) Яндекса.

2. Создать пароли приложений в Google

В настройках конфиденциальности Google создайте отдельные пароли приложений. Эти пароли нам понадобятся в дальнейшем для импорта данных во вновь созданные почтовые ящики Яндекса.

3. Экспортировать контакты

Контакты (адресную книгу) экспортируйте в файл vCard (.vcf) для последующего импорта в адресную книгу в учётной записи на Яндексе.
Если Вы синхронизируете адресную книгу с устройствами на iOS или macOS, то лучше экспортировать контакты из приложения Контакты (Contacts). Тогда в экспортируемом файле будут сохранены все картинки (аватарки) пользователей. Прямой экспорт из Gmail картинки контактов не сохраняет.

4. Экспортировать календарь

Аналогично, в программе, работающей с календарями, экспортируйте календари из Google в формат vCalendar (.ics). Кроме того, экспортировать календарь можно и из Календаря Google в браузере.

Теперь всё готово к подключению и настройке домена на Яндексе.

Б. Подключение домена к ПДД Яндекса

1. Подключить домен в ПДД Яндекса

Если вы ещё не имеете учётной записи на Яндексе, придётся её зарегистрировать, т.к. администрировать домен(ы) в ПДД Яндекса может только учётная запись @yandex.ru.
На главной странице ПДД Яндекса добавьте ваш домен, и затем подтвердите право владения им.

2. Настроить записи MX

Если вы подключили домен к ПДД Яндекса, но не делегировали его на Яндекс, то потребуется установить MX-запись у вашего регистратора.

3. Выполнить проверку домена в ПДД Яндекса

Поддерживаются способы подтверждения владения доменом через загрузку файла на сайт, создание записи CNAME в DNS, либо делегирование домена на NS-серверы Яндекса.
Последний способ хорош ещё и тем, что у Яндекса есть API для управления записями DNS.После вступления в силу изменений в записях DNS вы сможете создавать почтовые ящики в своём домене.

4. Создать почтовые ящики пользователей

Согласно списку, сделанному в п. А1, воссоздайте почтовые ящики пользователей и их алиасы (псевдонимы). Здесь же можно указать почтовый ящик, в который будут попадать письма, направленные на несуществующие ящики в домене.

Домен подключен к ПДД Яндекса
Домен подключен к ПДД Яндекса

5. Попросить пользователей выполнить вход в каждый из созданных почтовых ящиков

Это позволит пользоваться почтой через почтовые программы, а не только через веб-интерфейс.

На этой стадии новая почта приходит уже в почтовые ящики на Яндексе. Остаётся перенести в них старые данные, оставшиеся в почте Google.

В. Импорт данных в Яндекс

1. Закрыть почтовые программы, использующие старые ящики на Google

Это исключит изменения данных во время миграции почты.

2. Импортировать почту из старых ящиков

Используя созданные пароли приложений, импортируйте почту в новые ящики на Яндексе.

Начало импорта почты в ПДД Яндекса
Начало импорта почты в ПДД Яндекса

В моём случае импорт почты занял очень продолжительное время: более 15 часов для почтового ящика объёмом 10.7 Gb (11.6 тыс. сообщений).

Долгожданное окончание импорта почты в ПДД Яндекса
Долгожданное окончание импорта почты в ПДД Яндекса

3. Импортировать календари и контакты

У Яндекса есть соответствующие сервисы – календарь и контакты (открываются из веб-интерфейса почты). Оба сервиса позволяют использовать контакты и календарь через открытые протоколы CardDAV и CalDAV, то есть контакты и календарь можно подключить на смартфоне, планшете или компьютере.
* Сервер CardDAV у Яндекса плохо обрабатывает пакетный импорт (на момент миграции почты), поэтому лучше синхронизировать контакты по одному, например, в приложении Contacts.
* Не забудьте отметить учётную запись Яндекса для сохранения контактов по умолчанию, иначе ваши вновь создаваемые на телефоне контакты будут попадать в другой сервис и не будут видны в почте.

4. Проверить результаты импорта

Перед следующим шагом откройте новый почтовый ящик, убедитесь, что перенесены все папки и письма из старого ящика.

5. Отключить пароли приложений в Google

После завершения миграции отключите пароли приложений. В них больше нет надобности.

Г. Завершение настройки почты в Яндексе

1. Установить новые записи SPF и DKIM в DNS

Чтобы почта на Яндексе работала правильно, а отправленные письма не попадали в спам, настройте SPF-запись и DKIM-подпись в DNS. Если вы делегировали домен на Яндекс, скорее всего эти записи будут настроены автоматически. Содержимое открытого ключа, которое должно быть указано в DKIM-записи, показывается один раз. Впоследствии его можно вызвать с помощью API ПДД через HTTP-запрос.

2. Поменять пароли для ящиков на Яндексе

И попросите об этом других пользователей после того, как они вошли в почту первый раз по первичным паролям, полученным при создании ящиков. Также не грех настроить и двухфакторную аутентификацию.

3. (Пере)настроить метки, фильтры и сбор почты с других ящиков

Почтовый ящик в Яндексе тоже умеет применять фильтры, цветовые метки к входящим сообщениям не хуже Google. Однако всё это придётся настроить вручную заново каждому из пользователей.

4. Обновить настройки SMTP для приложений

Если вы использовали какие-либо приложения, которые отправляли почту через SMTP Google (системные уведомления серверов, WordPress и т.п.), теперь лучше переключить их на использование SMTP Яндекса, или воспользоваться сторонним API, например, SendGrid.

Д*. Настройка EAS и Push-уведомлений для почты

Хотите получать Push-уведомления для входящей почты, используя стандартное приложение Почта (Mail) в iOS/Android? Это реально, но потребует некоторой квалификации. Речь идёт о настройке Z-Push – open-source-реализации протокола Microsoft Exchange Active Sync (EAS) – на своём сервере.
Для установки и настройки Z-Push понадобится собственный виртуальный сервер VPS/VDS или физический компьютер. Если у вас уже есть сайт, и он работает на общем (shared) хостинге, стоит задуматься о переносе его на VPS. Я уже давно использую DigitalOcean, и советую его всем, кому недостаточно возможностей shared-хостинга, и кто хочет „вырасти“ и иметь дополнительные возможности кроме работы веб-сайта.

1. Установка Z-Push

Как установить Z-Push, подробно расписано на странице Z-Push wiki. Действительно, Z-Push удобнее всего устанавливать из репозитория.

Положим, у вас уже есть Droplet (VPS) на DigitalOcean с Ubuntu 16.04 LTS на борту, а также установлены nginx, php5.6-fpm (Z-Push ещё не поддерживает PHP 7.0) и memcached.
Тогда процесс установки Z-Push будет выглядеть примерно так:

Создаём файл /etc/apt/sources.list.d/z-push.list:
sudo vi /etc/apt/sources.list.d/z-push.list
Вносим туда строку и сохраняем файл:
deb http://repo.z-hub.io/z-push:/final/Debian_8.0/ /
Выполняем команду по добавлению ключа репозитория:
wget -qO - http://repo.z-hub.io/z-push:/final/Debian_8.0/Release.key | sudo apt-key add -
Обновляем список пакетов:
sudo apt-get update
Устанавливаем Z-Push:
sudo apt-get install z-push-common z-push-backend-caldav z-push-backend-carddav z-push-backend-combined z-push-backend-imap z-push-backend-ldap z-push-backend-galsearch-ldap z-push-ipc-memcached z-push-ipc-sharedmemory z-push-state-sql z-push-autodiscover
В один из файлов настройки php-fpm – /etc/php/5.6/fpm/pool.d/www.conf – добавляем для совместимости:
; Added for Z-Push compatibility
php_flag[magic_quotes_gpc] = off
php_flag[register_globals] = off
php_flag[magic_quotes_runtime] = off
php_flag[short_open_tag] = on
php_admin_flag[safe_mode] = off

2. Настройка Z-Push

Конфигурационные файлы Z-Push при обычном способе установки расположены в директории /etc/z-push.
Я приведу пример настройки, в котором оставлены только содержательные строки и удалены все комментарии, находившиеся в файлах после установки. Комментариями отмечены только те места, которые требуют внимания.

Для начала отредактируем главный файл настроек /etc/z-push/z-push.conf.php:
<?php
// Часовой пояс
define('TIMEZONE', 'Europe/Moscow');
define('BASE_PATH', dirname($_SERVER['SCRIPT_FILENAME']). '/');
define('SCRIPT_TIMEOUT', 0);
define('USE_X_FORWARDED_FOR_HEADER', false);
define("CERTIFICATE_OWNER_PARAMETER", "SSL_CLIENT_S_DN_CN");
// Используем полный адрес e-mail для логина. Это нужно для авторизации в ПДД Яндекса:
define('USE_FULLEMAIL_FOR_LOGIN', true);
define('STATE_MACHINE', 'FILE');
// Адрес папки, в которой хранятся сведения о состоянии синхронизации.
// Если папки нет, создайте её с правами 755 от имени пользователя веб-сервера
define('STATE_DIR', '/var/lib/z-push/');
define('IPC_PROVIDER', 'IpcMemcachedProvider');
define('LOGBACKEND', 'filelog');
// Вначале стоит логировать на уровне debug, когда всё будет работать, поменяйте на LOGLEVEL_INFO
define('LOGLEVEL', LOGLEVEL_DEBUG);
define('LOGAUTHFAIL', true);
define('LOGUSERLEVEL', LOGLEVEL_DEVICEID);
$specialLogUsers = array();
define('LOGFILEDIR', '/var/log/z-push/');
define('LOGFILE', LOGFILEDIR . 'z-push.log');
define('LOGERRORFILE', LOGFILEDIR . 'z-push-error.log');
define('LOG_SYSLOG_HOST', false);
define('LOG_SYSLOG_PORT', 514);
define('LOG_SYSLOG_PROGRAM', 'z-push');
define('LOG_SYSLOG_FACILITY', LOG_LOCAL0);
// Установим по этому адресу файл доверенных корневых центров сертификации от Mozilla
define('CAINFO', '/usr/share/z-push/cacert.pem');
define('PROVISIONING', true);
define('LOOSE_PROVISIONING', false);
define('PROVISIONING_POLICYFILE', 'policies.ini');
define('SYNC_CONFLICT_DEFAULT', SYNC_CONFLICT_OVERWRITE_PIM);
define('SYNC_FILTERTIME_MAX', SYNC_FILTERTYPE_ALL);
// Интервал проверки почты сервером (и доставки push-уведомлений):
define('PING_INTERVAL', 30);
define('FILEAS_ORDER', SYNC_FILEAS_LASTFIRST);
define('SYNC_MAX_ITEMS', 512);
define('UNSET_UNDEFINED_PROPERTIES', false);
define('SYNC_CONTACTS_MAXPICTURESIZE', 5242880);
define('ALLOW_WEBSERVICE_USERS_ACCESS', false);
define('USE_PARTIAL_FOLDERSYNC', false);
define('PING_LOWER_BOUND_LIFETIME', false);
define('PING_HIGHER_BOUND_LIFETIME', false);
define('SYNC_TIMEOUT_MEDIUM_DEVICETYPES', "SAMSUNGGTI");
define('SYNC_TIMEOUT_LONG_DEVICETYPES', "iPod, iPad, iPhone, WP, WindowsOutlook");
// Самое важное: тип синхронизации почты
define('BACKEND_PROVIDER', 'BackendIMAP');
// Максимальный размер сообщений (для отправки вложений)
define('MAX_EMBEDDED_SIZE', 31457280);
define('SEARCH_PROVIDER', '');
define('SEARCH_WAIT', 30);
define('SEARCH_MAXRESULTS', 30);
define('KOE_CAPABILITY_GAB', true);
define('KOE_CAPABILITY_RECEIVEFLAGS', true);
define('KOE_CAPABILITY_SENDFLAGS', true);
define('KOE_CAPABILITY_OOF', true);
define('KOE_CAPABILITY_OOFTIMES', true);
define('KOE_CAPABILITY_NOTES', true);
define('KOE_CAPABILITY_SHAREDFOLDER', true);
define('KOE_CAPABILITY_SENDAS', true);
define('KOE_GAB_STORE', 'SYSTEM');
define('KOE_GAB_FOLDERID', '');
define('KOE_GAB_NAME', 'Z-Push-KOE-GAB');
$additionalFolders = array(
);

Файл политик, применяемых к мобильным устройствам, – /etc/z-push/policies.ini – можно оставить как есть, отредактировав только параметр maxattsize, чтобы отправлять большие вложения (до 30 Mb):
maxattsize = '31457280'

Файл /etc/z-push/memcached.conf.php также оставляем как есть, если memcached у вас работает со стандартным портом 11211.

Теперь отредактируем настройки IMAP в файле /etc/z-push/imap.conf.php:
<?php
// IMAP-сервер Яндекса:
define('IMAP_SERVER', 'imap.yandex.ru');
define('IMAP_PORT', 993);
define('IMAP_OPTIONS', '/ssl/notls/norsh');
define('IMAP_AUTOSEEN_ON_DELETE', false);
define('IMAP_FOLDER_CONFIGURED', true);
define('IMAP_FOLDER_PREFIX', '');
define('IMAP_FOLDER_PREFIX_IN_INBOX', false);
define('IMAP_FOLDER_INBOX', 'INBOX');
define('IMAP_FOLDER_SENT', 'SENT');
define('IMAP_FOLDER_DRAFT', 'DRAFTS');
define('IMAP_FOLDER_TRASH', 'TRASH');
define('IMAP_FOLDER_SPAM', 'SPAM');
define('IMAP_FOLDER_ARCHIVE', 'ARCHIVE');
define('IMAP_INLINE_FORWARD', true);
define('IMAP_EXCLUDED_FOLDERS', 'Корзина|Outbox');
// Поле, которое будет подставляться в "От:", см. пояснения ниже:
define('IMAP_DEFAULTFROM', 'domain');
// Настройки на случай, когда в поле "От:" подставляется значение из базы данных MySQL/MariaDB:
//define('IMAP_DEFAULTFROM', 'sql');
define('IMAP_FROM_SQL_DSN', 'mysql:host=localhost;port=3306;dbname=zpush');
define('IMAP_FROM_SQL_USER', 'ZPush');
define('IMAP_FROM_SQL_PASSWORD', 'db_password');
define('IMAP_FROM_SQL_OPTIONS', serialize(array(PDO::ATTR_PERSISTENT => true)));
define('IMAP_FROM_SQL_QUERY', "select first_name, last_name, mail_address from users where mail_address = '#username'");
define('IMAP_FROM_SQL_FIELDS', serialize(array('first_name', 'last_name', 'mail_address')));
define('IMAP_FROM_SQL_FROM', '#first_name #last_name <#mail_address>');
define('IMAP_FROM_SQL_FULLNAME', '#first_name #last_name');
// Сервер LDAP настраивать не будем, оставим, как есть:
define('IMAP_FROM_LDAP_SERVER', 'localhost');
define('IMAP_FROM_LDAP_SERVER_PORT', '389');
define('IMAP_FROM_LDAP_USER', 'cn=zpush,ou=servers,dc=zpush,dc=org');
define('IMAP_FROM_LDAP_PASSWORD', 'password');
define('IMAP_FROM_LDAP_BASE', 'dc=zpush,dc=org');
define('IMAP_FROM_LDAP_QUERY', '(mail=#username@#domain)');
define('IMAP_FROM_LDAP_FIELDS', serialize(array('givenname', 'sn', 'mail')));
define('IMAP_FROM_LDAP_FROM', '#givenname #sn <#mail>');
define('IMAP_FROM_LDAP_FULLNAME', '#givenname #sn');
// Отправлять почту будем через SMTP-сервер Яндекса:
define('IMAP_SMTP_METHOD', 'smtp');
global $imap_smtp_params;
$imap_smtp_params = array();
$imap_smtp_params = array('host' => 'ssl://smtp.yandex.com', 'port' => '465', 'auth' => true, 'username' => 'imap_username', 'password' => 'imap_password', 'verify_peer' => true, 'verify_peer_name' => true, 'debug' => true);
// Закомментированный пример конфигурации, когда используется SMTP-сервер SendGrid:
//$imap_smtp_params = array('host' => 'ssl://smtp.sendgrid.net', 'port' => '465', 'auth' => true, 'username' => 'apikey', 'password' => 'API-ключ', 'verify_peer' => true, 'verify_peer_name' => true, 'allow_self_signed' => true);
define('MAIL_MIMEPART_CRLF', "\r\n");
define('SYSTEM_MIME_TYPES_MAPPING', '/etc/mime.types');
define('IMAP_MEETING_USE_CALDAV', true);

Настройка 'IMAP_DEFAULTFROM' определяет, откуда сервер будет брать строку, подставляемую в поле "От:" исходящих сообщений. При нативном развёртывании сервера Exchange эта информация берётся из списка пользователей домена. В Z-Push можно выбирать между строкой, заполняемой пользователем в поле "Домен" настроек EAS на мобильном устройстве, либо из базы данных, либо из LDAP. В примере конфигурации я оставил закомментированным настройку, когда строка "От:" выбирается из базы данных. На мой взгляд, более гибким является вариант, когда пользователь может отредактировать эту строку самостоятельно. Например, если есть несколько ящиков, авторизованных в ПДД Яндекса или учётной записи пользователя (сбор почты с других ящиков), то можно временно поменять адрес отправителя на другой, или написание имени отправителя – с русского на англоязычное. Тем не менее, если здесь не будет указан действительный/авторизованный адрес, SMTP-сервер Яндекса заменит строку просто на адрес e-mail по умолчанию. Например, у меня обычно указано: Gregory A. Pozhvanov <gregory@pozhvanov.com>, см. шестой скриншот ниже в секции Д5.

Напоследок отредактируем файл службы автоматического определения параметров EAS.
Он находится по адресу /etc/z-push/autodiscover.conf.php:
<?php
// Часовой пояс, не опять, а снова:
define('TIMEZONE', 'Europe/Moscow');
define('BASE_PATH', dirname($_SERVER['SCRIPT_FILENAME']). '/');
// Адрес сервиса Z-Push:
define('SERVERURL', 'https://mail.yourdomain.com/Microsoft-Server-ActiveSync');
define('USE_FULLEMAIL_FOR_LOGIN', true);
define('LOGBACKEND', 'filelog');
define('LOGFILEDIR', '/var/log/z-push/');
define('LOGFILE', LOGFILEDIR . 'autodiscover.log');
define('LOGERRORFILE', LOGFILEDIR . 'autodiscover-error.log');
define('LOGLEVEL', LOGLEVEL_INFO);
define('LOGUSERLEVEL', LOGLEVEL);
$specialLogUsers = array();
define('LOG_SYSLOG_HOST', false);
define('LOG_SYSLOG_PORT', 514);
define('LOG_SYSLOG_PROGRAM', 'z-push-autodiscover');
define('LOG_SYSLOG_FACILITY', LOG_LOCAL0);
define('BACKEND_PROVIDER', 'BackendIMAP');

О том, зачем нужен Autodiscover и как это работает, читайте в документации Z-Push.

По неведомой мне причине отправка писем „из коробки“ не работала. Вообще. В результате долгого поиска я осознал, что мой сервер на DigitalOcean пытается связаться с SMTP-сервером Яндекса по протоколу IPv6, и это у него почему-то не получается.
Добавление строки в /etc/hosts решило эту проблему:
87.250.250.38 smtp.yandex.com

3. Настройка NGINX

В конфигурационный файл NGINX или (лучше) в файл /etc/nginx/sites-enabled/zpush добавляем секцию для нового сервера:
#   Z-Push configuration   #
#
server {
   listen 443 ssl http2;
   server_name mail.yourdomain.com autodiscover.yourdomain.com;
#   SSL-сертификат и закрытый ключ:
   ssl_certificate /homes/username/zpush.bundle.crt;
   ssl_certificate_key /homes/username/zpush.key;
   server_tokens off;
   add_header Strict-Transport-Security "max-age=15768000; includeSubDomains: always;";
   root /usr/share/z-push;
   index index.php;
   client_max_body_size 128M;
   
   location = /favicon.ico {
      log_not_found off;
      access_log off;
      error_log off;
      expires 30d;
      add_header Pragma public;
      add_header Cache-Control "max-age=2592000, public";
   }
   location = /robots.txt {
      deny all;
      log_not_found off;
      access_log off;
      error_log off;
   }
   location ~ /(?!\.well-known/acme-challenge)\. {
      deny all;
      log_not_found off;
      access_log off;
   }
#   Алиас для директории, в которую помещаются проверочные файлы Let′s Encrypt:
   location /.well-known/acme-challenge {
      alias /homes/username/verify;
      allow all;
   }
   error_log /var/log/nginx/zpush-error.log;
   access_log /var/log/nginx/zpush-access.log;
   
   location / {
      try_files $uri $uri/ index.php;
   }
   location /Microsoft-Server-ActiveSync {
      rewrite ^(.*)$ /index.php;
   }
   location /Autodiscover/Autodiscover.xml {
      rewrite ^(.*)$ /autodiscover/autodiscover.php;
   }
   location /AutoDiscover/AutoDiscover.xml {
      rewrite ^(.*)$ /autodiscover/autodiscover.php;
   }
   location /autodiscover/autodiscover.xml {
      rewrite ^(.*)$ /autodiscover/autodiscover.php;
   }
   location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
      access_log off;
      log_not_found off;
      expires 30d;
      add_header Pragma public, add_header Cache-Control "max-age=2592000, public";
   }
   
   location ~ \.php$ {
      include snippets/fastcgi-php.conf;
      fastcgi_split_path_info ^(.+.php)(.+)$;
      fastcgi_param HTTPS on;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_pass unix:/run/php/php5.6-fpm.sock;
      fastcgi_read_timeout 630;
      fastcgi_keep_conn on;
      fastcgi_pass_header Set-Cookie;
      fastcgi_pass_header Cookie;
      fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
      fastcgi_param PATH_INFO $fastcgi_path_info;
      fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
      include fastcgi_params;
   }
}
#   Z-Push END OF CONFIGURATION   #

4. Тестирование конфигурации Z-Push

Когда всё настроено, проверьте конфигурацию NGINX:
sudo nginx -t
Если получено OK, перезапустите NGINX:
sudo systemctl reload nginx
и откройте страницу почтового интерфейса: https://mail.yourdomain.com. Если всё в порядке, то браузер выдаст диалоговое окно аутентификации. Введите имя пользователя и пароль учётной записи в ПДД Яндекса. Если данные введены правильно, то система авторизует пользователя на Яндексе и выдаст страницу, в которой написано, что Exchange Active Sync работает только с использованием метода POST:

Проверка работы Z-Push через браузер
Проверка работы Z-Push через браузер

Теперь проверьте, насколько правильно настроена автонастройка EAS, используя онлайн-инструмент Microsoft: testconnectivity.microsoft.com. В конце теста вы должны получить сообщение о том, что все или почти все тесты прошли успешно. Поскольку автонастройка может отзываться как по адресу основного домена (https://yourdomain.com/Autodiscover/Autodiscover.xml), так и с субдомена (https://autodiscover.yourdomain.com/Autodiscover/Autodiscover.xml), и достаточно хотя бы одного адреса, у меня тест выдаёт предупреждение, которое смело можно проигнорировать:

Тест настройки Autodiscover
Тест настройки Autodiscover

5. Настройка почты EAS в iOS

Когда конфигурация сервера завершена, самое время подключить почту с поддержкой Push-уведомлений в „штатном“ приложении iOS – Почта (Mail). Push-уведомления не только оперативно сообщают о приходе новой почты, но и позволяют экономить заряд батареи, т.к. проверкой почты занимается сервер, и направляет обновление на телефон или планшет только тогда, когда это необходимо.

Открываем приложение Настройки, далее Почта > Учетные записи > Добавить, и выбираем тип учётной записи – Exchange. Далее вводим адрес e-mail, зарегистрированный в ПДД Яндекса, пароль и условное название учётной записи, удобное вам. Далее с помощью сервиса Autodiscover происходит автоматическая настройка учётной записи. Опять же, если всё настроено правильно, каждая строка будет отмечена галочкой, и телефон/планшет попросит отметить те службы, которые вы хотите синхронизировать. Оставляем выбранной только почту, и переходим к следующему экрану.

Добавление учётной записи Exchange Логин и пароль учётной записи Exchange Проверка данных учётной записи Exchange Настройка синхронизации учётной записи Exchange
Добавление и настройка синхронизации учётной записи Exchange

Теперь в настройках учётной записи коснитесь секции настройки, и введите имя домена, как обсуждалось выше – эта строка будет подставляться в поле "От:" исходящих сообщений. Здесь же в дополнительных настройках можно сразу указать параметры электронной подписи и шифрования сообщений по протоколу S/MIME. Наконец, удобство учётной записи EAS в том, что Push-уведомления можно настраивать не только для папки „Входящие“, но и для любой другой папки в аккаунте.

Дополнительные настройки учётной записи Exchange Настройка поля «От:» исходящих писем в учётной записи Exchange Настройка электронной подписи и шифрования в учётной записи Exchange Настройка уведомлений о входящих сообщениях
Дополнительные настройки учётной записи Exchange

Осталось только активировать системные уведомления для новой учётной записи, и готово! Открывайте приложение Почта и смотрите, как загружается почта :)

Если не увлекаться глубиной синхронизации и оставить её на уровне последних двух недель или месяца, то мощности самого доступного виртуального сервера за $5 в месяц вполне достаточно и для работы сайта, и для работы с почтой нескольких пользователей.

Удачной настройки почты!

Перенос почты для домена с Google на Яндекс: 1 комментарий

Добавить комментарий