M

mailexam-cli

Темы: cli email-testing smtp
+ ещё 5
CLI для тестирования email в CI/CD. Поддержка assert, wait, списка проектов и писем.

mailexam-cli

Инструмент командной строки для REST API Mailexam — проекты, входящие, письма и проверки в CI/CD.

Установка

go install hub.mos.ru/mailexam/mailexam-cli/cmd/mailexam@latest

Или сборка из исходников:

git clone git@hub.mos.ru:mailexam/mailexam-cli.git
cd mailexam-cli
go build -o mailexam ./cmd/mailexam

Конфигурация

Переменная Описание
MAILEXAM_API_TOKEN API-токен из личного кабинета
MAILEXAM_API_BASE Базовый URL API (по умолчанию: https://mailexam.ru/api/v1)
MAILEXAM_PROJECT_UUID UUID проекта по умолчанию
MAILEXAM_INBOX_UUID UUID входящих по умолчанию

Все значения можно переопределить флагами: --token, --base, --project, --inbox.

Региональные endpoint'ы:

  • https://mailexam.ru/api/v1 (по умолчанию)
  • https://mailexam.cn/api/v1
  • https://mailexam.io/api/v1

Использование

export MAILEXAM_API_TOKEN="ваш_токен"
export MAILEXAM_PROJECT_UUID="536a47df-5aad-44d0-8163-a39bb55abe0b"

# Проекты
mailexam project list
mailexam project get 536a47df-5aad-44d0-8163-a39bb55abe0b

# Входящие
mailexam inbox list --project $MAILEXAM_PROJECT_UUID
mailexam inbox get deab7974-a252-4412-9169-b965116b63cf

# Письма
mailexam email list
mailexam email get e2f9a506-d766-4935-be11-c413384de020 --format text
mailexam email wait --subject "Проверка CI" --timeout 30
mailexam email assert --subject "Проверка CI" --contains "Привет"
mailexam email delete e2f9a506-d766-4935-be11-c413384de020

# Вложения
mailexam email attachment download EMAIL_UUID --cid ATTACHMENT_CID -o file.pdf

Пример для CI/CD

integration_test:
  stage: test
  variables:
    MAILEXAM_API_BASE: "https://mailexam.ru/api/v1"
    MAILEXAM_PROJECT_UUID: "536a47df-5aad-44d0-8163-a39bb55abe0b"
  script:
    - npm run send-test-email
    - mailexam email assert --subject "Проверка CI" --contains "Привет"
  # MAILEXAM_API_TOKEN — секрет CI/CD

Коды выхода

Код Значение
0 Успех
1 Ошибка или проверка не пройдена
2 Ошибка аутентификации (403)
3 Таймаут ожидания письма

Документация

Лицензия

Apache 2.0