SCROLL
Среднее время на прочтение: 2 мин.

Автоматизация процесса массового создания почтовых ящиков в Яндекс почта для домена

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

Для управления почтой Яндекс предоставляет API Почты для домена (подробней про API можно почитать в официальной документации), вот им мы как раз и воспользуемся для реализации нашей задачи.

Итак в моем распоряжение есть список с адресами которые необходимо создать в Яндекс Почта для домена, адреса в текстовом файле выглядят так:

test@test.ru
test@test.ru
test@test.ru
test@test.ru
... и т.д.

Для работы скрипта нужно получить PDD Token для администратора (получить его можно для вашего домена можно по ссылке).

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

Скрипт с комментариями и разобраться в нем не должно составить труда.

#!/bin/bash

# ==== Переменные для создания ящиков ======================
# Путь к списку пользователей
USRLIST='/home/admin/YandexMailControl/emailuserlist'
# Временный файл для обработки имен и фамилий
TEMP='/home/admin/YandexMailControl/temp'
# Название домена
DOMAIN="test.com"
# PDD Token
TOKEN="4GQAO6O3ZTNHYL6FNQ000000000000000000000000000000"
# Пароль по умолчанию
PASS="Aa1234567"
# ==========================================================
# ==== Переменные для внесения данных в ящики ==============
# Секретный вопрос
QUESTION="vopros"
# Секретный ответ
ANSWER="otvet"
# ==========================================================
# Из созданного временного файла убираем название домена в строках если оно присутствует
sed -i 's/[[:blank:]]*@'$DOMAIN'//' $USRLIST
# Перебираем циклом файл с списком пользователей и создаем почтовый ящик по каждому из них
for i in $( cat $USRLIST ); do
# Создаем ящик
curl -H 'PddToken: '$TOKEN -d 'domain='$DOMAIN'&login='$i'&password='$PASS 'https://pddimp.yandex.ru/api2/admin/email/add'
# Заносим во временный файл текущий логин от почты
echo $i > $TEMP
# Получаем значения имени и фамилии для заполнения профиля
FIRSTNAME=$(awk -F"." '{ print $1 }' $TEMP)
LASTNAME=$(awk -F"." '{ print $2 }' $TEMP)
# Делаем проверку если логин состоит из одной строки, то LASTNAME будет пустым, в этом случае подставим FIRSTNAME. Редактируем профили.
if [ -z "$LASTNAME" ]; then
curl -H 'PddToken: '$TOKEN -d 'domain='$DOMAIN'&login='$i'&password='$PASS'&iname='$FIRSTNAME'&fname='$FIRSTNAME'&hintq='$QUESTION'&hinta='$ANSWER 'https://pddimp.yandex.ru/api2/admin/email/edit'
else
curl -H 'PddToken: '$TOKEN -d 'domain='$DOMAIN'&login='$i'&password='$PASS'&iname='$FIRSTNAME'&fname='$LASTNAME'&hintq='$QUESTION'&hinta='$ANSWER 'https://pddimp.yandex.ru/api2/admin/email/edit'
fi
# Удаляем временный файл
rm $TEMP
done
echo "Задание выполнено!"

Скрипт проходится по каждый строке текстового файла с адресами и создает почтовый ящик, после создания начинается заполнение профиля созданного ящика, т.е. исходя из того какой логин у ящика (прим. name.lastname@test.ru) будет подстановка в поля «Имя» и «Фамилия» вида Имя — name, Фамилия — lastname. Если же логин вида name@test.ru, то в поле Имя и Фамилия будет подставлено name. Так же для созданного ящика будет задан секретный вопрос и ответ на него, тот который вы зададите в скрипте.

После того как скрипт отработает, то останется зайти в каждый созданный ящик и завершить регистрацию. Да это геморно, но это единственный путь. С помощью средств API этого сделать нельзя (узнавал у тех. поддержки Яндекса).

Обсуждение

4 комментариев
  • Добрый день!
    С Яндекс Коннектом не сталкивались? Яндекс ПДД сейчас я так понимаю уже не функционирует.

  • Адреса Яндекса в скрипте обрезало.