Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Cloud Postbox
  • Начало работы
    • Все инструкции
    • Создание адреса
    • Проверка владения доменом
    • Настройка DMARC-политики
    • Отправка письма
    • Шаблонизация письма
    • Создание конфигурации
    • Привязка конфигурации к адресу
    • Запись логов
  • Управление доступом
  • Правила тарификации
  • Аудитные логи Audit Trails
  • История изменений

В этой статье:

  • Перед началом работы
  • Отправьте письмо
  • AWS CLI
  • SMTP
  1. Пошаговые инструкции
  2. Отправка письма

Отправка письма

Статья создана
Yandex Cloud
Обновлена 15 апреля 2025 г.
  • Перед началом работы
  • Отправьте письмо
    • AWS CLI
    • SMTP

В Yandex Cloud Postbox отправить письмо можно с помощью AWS CLI или из почтового клиента по протоколу SMTP.

Примечание

Для обеспечения безопасности передачи данных сервис Yandex Cloud Postbox поддерживает версии протокола TLS 1.2 и 1.3.

Перед началом работыПеред началом работы

  1. Создайте сервисный аккаунт в том же каталоге, в котором находится адрес. Если вы создадите сервисный аккаунт и адрес в разных каталогах, при попытке отправить письмо возникнет ошибка.
  2. Назначьте сервисному аккаунту роль postbox.sender.
  3. Создайте ключ для сервисного аккаунта:
    • Для отправки письма с помощью AWS CLI или по протоколу SMTP с аутентификацией по паролю создайте статический ключ доступа. Надежно сохраните идентификатор и секретный ключ. После того как вы закроете окно, параметры секретного ключа станут недоступны.
    • Для отправки письма по протоколу SMTP с аутентификацией по API-ключу создайте API-ключ. При создании API-ключа задайте область действия yc.postbox.send. Надежно сохраните полученный секретный ключ. После того как вы закроете окно, параметры секретного ключа станут недоступны.

Отправьте письмоОтправьте письмо

AWS CLIAWS CLI

  1. Установите утилиту командной строки AWS CLI.

  2. Настройте AWS CLI:

    1. Запустите интерактивную настройку профиля:
      aws configure
      
    2. Укажите полученный ранее идентификатор ключа сервисного аккаунта postbox-user:
      AWS Access Key ID [****************ver_]: <идентификатор_ключа_сервисного_аккаунта>
      
    3. Укажите полученный ранее секретный ключ сервисного аккаунта postbox-user:
      AWS Secret Access Key [****************w5lb]: <секретный_ключ_сервисного_аккаунта>
      
    4. Укажите имя региона по умолчанию ru-central1:
      Default region name [ru-central1]: ru-central1
      
    5. Укажите формат выходных данных по умолчанию json:
      Default output format [None]: json
      
  3. Подготовьте два JSON-файла:

    • destination.json — файл со списком адресов назначения:

      {
        "ToAddresses": ["test@example.com"]
      }
      
    • message.json — файл с темой и содержимым письма:

      {
        "Simple": {
          "Subject": {
            "Data": "Test message",
            "Charset": "UTF-8"
          },
          "Body": {
            "Text": {
              "Data": "Test message. Hello!",
              "Charset": "UTF-8"
            }
          }
        }
      }
      
  4. Отправьте письмо с помощью AWS CLI:

    aws sesv2 send-email \
      --from-email-address mail@example.com \
      --destination file://destination.json \
      --content file://message.json \
      --endpoint-url https://postbox.cloud.yandex.net
    
  5. Проверьте почтовый ящик, указанный в destination.json, — туда должно прийти письмо.

SMTPSMTP

Отправка по протоколу SMTP возможна с аутентификацией по API-ключу сервисного аккаунта или по паролю, сгенерированному на основе статического ключа доступа сервисного аккаунта.

Аутентификация по API-ключу
Аутентификация по паролю
  1. В настройках SMTP-сервера вашего почтового клиента укажите следующие параметры:

    Почтовый клиент поддерживает STARTTLS

    Почтовый клиент не поддерживает STARTTLS, но поддерживает SMTPS

    Имя сервера

    postbox.cloud.yandex.net

    Порт

    587

    465

    Имя пользователя

    API_KEY

    Пароль

    Секретная часть созданного API-ключа

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

  1. Получите пароль, используя созданный ранее статический ключ доступа сервисного аккаунта. Для этого вызовите скрипт generate.py. Используйте Python не ниже версии 3.

    python generate.py <секретный_ключ_сервисного_аккаунта>
    
    generate.py
    #!/usr/bin/env python3
    
    import hmac
    import hashlib
    import base64
    import argparse
    import sys
    
    # These values are required to calculate the signature. Do not change them.
    DATE = "20230926"
    SERVICE = "postbox"
    MESSAGE = "SendRawEmail"
    REGION = "ru-central1"
    TERMINAL = "aws4_request"
    VERSION = 0x04
    
    
    def sign(key, msg):
        return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest()
    
    
    def calculate_key(secret_access_key):
        signature = sign(("AWS4" + secret_access_key).encode("utf-8"), DATE)
        signature = sign(signature, REGION)
        signature = sign(signature, SERVICE)
        signature = sign(signature, TERMINAL)
        signature = sign(signature, MESSAGE)
        signature_and_version = bytes([VERSION]) + signature
        smtp_password = base64.b64encode(signature_and_version)
        return smtp_password.decode("utf-8")
    
    
    def main():
        if sys.version_info[0] < 3:
            raise Exception("Must be using Python 3")
    
        parser = argparse.ArgumentParser(
            description="Convert a Secret Access Key to an SMTP password."
        )
        parser.add_argument("secret", help="The Secret Access Key to convert.")
        args = parser.parse_args()
    
        print(calculate_key(args.secret))
    
    
    if __name__ == "__main__":
        main()
    
  2. В настройках SMTP-сервера вашего почтового клиента укажите следующие параметры:

    Почтовый клиент поддерживает STARTTLS

    Почтовый клиент не поддерживает STARTTLS, но поддерживает SMTPS

    Имя сервера

    postbox.cloud.yandex.net

    Порт

    587

    465

    Имя пользователя

    Идентификатор созданного ранее статического ключа доступа

    Пароль

    Пароль, полученный на предыдущем шаге

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

Была ли статья полезна?

Предыдущая
Настройка DMARC-политики
Следующая
Шаблонизация письма
Проект Яндекса
© 2025 ООО «Яндекс.Облако»