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

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

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

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

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

Если же у вас такого списка нет, то создаем его

nano emailuserlist

И заносим в него адреса все которые необходимо будет создать. Далее для работы скрипта нужно получить 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 этого сделать нельзя (узнавал у тех. поддержки Яндекса).

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Всего комментариев: 2 Комментировать

  1. Читатель /

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

    1. Жаконда / Автор записи

      Поправил. Спасибо !

Оставить ответ

пятнадцать + девять =