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

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

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

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

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

В Yandex Cloud Postbox можно отправить письмо:

  • с помощью AWS CLI;
  • из почтового клиента по протоколу SMTP;
  • с помощью AWS SDK;
  • с помощью утилиты cURL.

Примечание

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

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

  1. Создайте сервисный аккаунт в том же каталоге, в котором находится адрес. Если вы создадите сервисный аккаунт и адрес в разных каталогах, при попытке отправить письмо возникнет ошибка.

  2. Назначьте сервисному аккаунту роль postbox.sender.

  3. Создайте ключ для сервисного аккаунта:

    • API-ключ. При создании API-ключа задайте область действия yc.postbox.send. Надежно сохраните полученный секретный ключ. После того как вы закроете окно, параметры секретного ключа станут недоступны.

    • Статический ключ доступа. Надежно сохраните идентификатор и секретный ключ. После того как вы закроете окно, параметры секретного ключа станут недоступны.

    • IAM-токен. Этот способ авторизации подходит для отправки писем из функций Cloud Functions и контейнеров Serverless Containers, а также для виртуальных машин Compute Cloud, к которым привязан сервисный аккаунт. Выбирайте его, если не хотите создавать и хранить статические ключи доступа.

      Важно

      Учитывайте, что IAM-токен действует не больше 12 часов. Если нужно прописать данные для авторизации в конфигурационном файле почтового клиента, используйте аутентификацию по API-ключу или паролю.

    Доступные комбинации способов аутентификации и отправки письма:


    Способ отправки письма
    Способ аутентификации
    AWS CLI SMTP AWS SDK cURL
    API-ключ
    Статический ключ доступа
    IAM-токен

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

AWS CLIAWS CLI

Cтатический ключ доступа
  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. Укажите имя региона по умолчанию kz1:
      Default region name [kz1]: kz1
      
    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

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

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

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

    Имя сервера

    postbox.cloud.yandex.net

    Порт

    587

    465

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

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

    Пароль

    Секретная часть созданного 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 = "kz1"
    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. Отправьте письмо с помощью вашего почтового клиента и убедитесь, что оно пришло на указанные адреса.

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

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

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

    Имя сервера

    postbox.cloud.yandex.net

    Порт

    587

    465

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

    IAM_TOKEN

    Пароль

    IAM-токен сервисного аккаунта

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

AWS SDKAWS SDK

Вы можете отправить письмо с помощью AWS SDK для .NET Core, Go, JavaScript и Python. Подробнее см. в руководствах:

  • Отправка писем с помощью AWS SDK для .NET Core
  • Отправка писем с помощью AWS SDK для Go
  • Отправка писем с помощью AWS SDK для JavaScript
  • Отправка писем с помощью AWS SDK для Python

cURLcURL

Чтобы отправить письмо с помощью утилиты cURL, выполните команду:

Статический ключ доступа
IAM-токен
curl \
    --request POST \
    --url 'https://postbox.cloud.yandex.net/v2/email/outbound-emails' \
    --header 'Content-Type: application/json' \
    --user "${KEY_ID}:${SECRET_KEY}" \
    --aws-sigv4 "aws:amz:ru-central1:ses" \
    --data-binary '@email.json'
curl \
    --request POST \
    --url 'https://postbox.cloud.yandex.net/v2/email/outbound-emails' \
    --header 'Content-Type: application/json' \
    --header 'X-YaCloud-SubjectToken: <IAM-токен>' \
    --data '{
        "FromEmailAddress": "<отправитель>",
        "Destination": {
            "ToAddresses": ["<получатель>"]
        },
        "Content": {
            "Simple": {
                "Subject": {
                    "Data": "<тема>"
                },
                "Body": {
                    "Text": {
                        "Data": "<текст письма>"
                    }
                }
            }
        }
    }'

Тело запроса можно передавать в аргументе командной строки или файле.

Пример файла
{
    "FromEmailAddress": "<отправитель>",
    "Destination": {
        "ToAddresses": ["<получатель>"]
    },
    "Content": {
        "Simple": {
            "Subject": {
                "Data": "<тема>"
            },
            "Body": {
                "Text": {
                    "Data": "<текст письма>"
                }
            }
        }
    }
}

Чтобы использовать AWS Signature Version 4 для подписи запроса, укажите параметр --aws-sigv4. Как формировать подпись самостоятельно, см. в разделе Подписывание запросов.

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

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