Ай Лайн
Связаться
Отдел продаж +7 (812) 385-74-84
Время работы пн-пт с 9:00 до 18:00

Mailcow — скрипты пакетных операций

Общая сводка по возможным api запросам - Swagger UI (mailcow.email)

Пакетное создание почтовых ящиков

На вход принимается csv, данные должны быть записаны в формате : mailbox,fullname.pword

Файл нужно делать под Linux, либо менять кодировку если файл был сделан в Windows

Пример: левая часть ящика(без домена),полное имя,пароль (отделяется все через запятую без пробелов)

v.vasin,Василий Васин,pass_xxxx
s.sergeev,Сергей Сергеев,pass_xxxx
p.ivanov,Иван Иванов,pass_xxxx

Создаем файл со скриптом, назначаем права:

cat > create_mailbox_from_csv.sh << 'EOF'
#!/bin/bash
domain="название домена"
api_url="ссылка на mailcow"
input=user_list.csv
[ ! -f $input ] && { echo "$input doesn't exist"; exit 99; }
while IFS="," read mailbox fullname pword
do
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-API-Key: XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX" \
-d '{
  "local_part":"'"$mailbox"'",
  "domain":"'"$domain"'",
  "name":"'"$fullname"'",
  "password":"'"$pword"'",
  "password2":"'"$pword"'",
  "active":"1"}' \
$api_url
done < $input
EOF
chmod +x create_mailbox_from_csv.sh

В файле меняем переменные на необходимые значения:

  • api_url="ссылка для api запроса" - ссылка на api запрос
  • input=user.csv - файл с входными данными
  • domain="название домена" - домен

Пакетное создание заданий синхронизации

На вход принимается csv, данные должны быть записаны в формате : username,pword

Файл нужно делать под Linux, либо менять кодировку если файл был сделан в Windows

  • username — имя пользователя для подключения к imap серверу, оно же используется как ящик назначения, можно разнести при необходимости);
  • пароль — пароль для подключения к ящику, с которого будет происходить перенос.

Пример:

v.vasin@example.com,pass_xxxx
s.sergeev@example.com,pass_xxxx
p.ivanov@example.com,pass_xxxx

Создаем файл со скриптом, назначаем права:

cat > create_syncjob_from_csv.sh << 'EOF'
#!/bin/bash
api_url="ссылка для api запроса"
input=user.csv
imap_host="imap.yandex.ru"
imap_enc="SSL"
imap_port="993"
m_int="20"
t_out="60"
[ ! -f $input ] && { echo "$input doesn't exist"; exit 99; }
while IFS="," read uname pword
do
curl -i -X POST \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-API-Key: XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX" \
-d '{
  "username":"'"$uname"'",
  "host1":"'"$imap_host"'",
  "port1":"'"$imap_port"'",
  "user1":"'"$uname"'",
  "password1":"'"$pword"'",
  "enc1":"'"$imap_enc"'",
  "mins_interval":"'"$m_int"'",
  "subfolder2":"",
  "maxage":"0",
  "maxbytespersecond":"0",
  "timeout":"'"$t_out"'",
  "exclude":"(?i)spam|(?i)junk",
  "custom_params":"",
  "delete2duplicates":"1",
  "delete1":"0",
  "delete2":"0",
  "automap":"1",
  "skipcrossduplicates":"0",
  "subscribeall":"0",
  "active":"1"
}' \
$api_url
done < $input
EOF
chmod +x create_syncjob_from_csv.sh

В файле меняем переменные на необходимые значения:

  • api_url="ссылка для api запроса" - ссылка на api запрос
  • input=user.csv - файл с входными данными
  • imap_host="imap.yandex.ru" - imap-сервер, с которого будет выполняться импорт
  • imap_enc="SSL" - протокол шифрования соединения
  • imap_port="993" - порт для подключения к серверу, с которого будет происходить импорт
  • m_int="20" - интервал синхронизации в минутах
  • t_out="60" - время ожидания ответа от сервера в секундах

Также есть стандартные значения, которые может понадобиться изменить:

  • subfolder2="" - можно указать папку, внутрь которой будет идти синхронизация
  • delete2duplicates=1 - delete duplicates on destination
  • delete1=0 - delete from source when completed
  • delete2=0 - delete messages on destination that are not on source
  • automap=1 - try to automap folders ("Sent items", "Sent" => "Sent" etc.)
  • skipcrossduplicates=0 - skip duplicate messages across folders (first come, first serve)
  • subscribeall=1 - subscribe all folder
Оставить заявку