Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Практические руководства
    • Все руководства
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка Telegram-бота с поддержкой AI-агента
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Построение пайплайна CI/CD в GitLab
    • Настройка CI/CD между Cloud Functions и SourceCraft
    • Настройка CI/CD между Cloud Functions и GitHub
    • Работа с API-шлюзом по протоколу WebSocket
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Автоматическое копирование объектов из одного бакета Object Storage в другой
    • Визуализация логов в Grafana с помощью плагина Cloud Logging
    • Канареечный релиз функции Cloud Functions
    • Интерактивная отладка функций Cloud Functions
    • Создание функции Node.js с помощью TypeScript
    • Запуск контейнерного приложения в Serverless Containers
    • Передача событий Yandex Cloud Postbox в Data Streams и их анализ с помощью DataLens
    • Использование API Gateway для настройки синтеза речи в SpeechKit
    • Подключение к YDB из функции Cloud Functions на Python
    • Подключение к базе данных YDB из функции Cloud Functions на Node.js
    • Защита API Gateway при помощи Smart Web Security
    • Развертывание веб-приложения с JWT-авторизацией в API Gateway и аутентификацией в Firebase
    • Автоматическая загрузка данных в Yandex SpeechSense с помощью Yandex Workflows
    • Настройка реагирования в Cloud Logging и Yandex Cloud Functions
    • Настройка интеграций Workflows с Tracker, YandexGPT и Yandex Cloud Postbox
    • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers
    • Создание адреса Yandex Cloud Postbox и проверка владения доменом с помощью Terraform
      • .NET Core
      • Go
      • JavaScript
      • Python
    • Создание AI-агента с помощью Yandex Cloud Functions
    • Настройка Postfix для отправки через Yandex Cloud Postbox

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Подготовьте ресурсы
  • Настройте директорию для аутентификационных данных
  • Использование переменных окружения
  • Создайте и запустите приложение
  • Проверьте результат
  • Как удалить созданные ресурсы
  1. Бессерверные технологии
  2. Отправка писем в Yandex Cloud Postbox с помощью AWS SDK
  3. JavaScript

Отправка писем с помощью AWS SDK для JavaScript

Статья создана
Yandex Cloud
Обновлена 30 июля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
    • Подготовьте ресурсы
  • Настройте директорию для аутентификационных данных
    • Использование переменных окружения
  • Создайте и запустите приложение
  • Проверьте результат
  • Как удалить созданные ресурсы

Важно

Часть ресурсов, необходимых для прохождения практического руководства, доступны только в регионе Россия.

В этом руководстве вы научитесь отправлять электронные письма через Yandex Cloud Postbox с использованием AWS SDK для JavaScript.

Чтобы начать отправлять электронные письма:

  1. Подготовьте облако к работе.
  2. Настройте директорию для аутентификационных данных.
  3. Создайте и запустите приложение.
  4. Проверьте результат.

Если созданные ресурсы вам больше не нужны, удалите их.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

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

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки инфраструктуры входят:

  • плата за использование Yandex Cloud Postbox (см. тарифы Yandex Cloud Postbox);
  • плата за публичные DNS-запросы и зоны DNS, если вы создаете ресурсную запись в Cloud DNS (см. тарифы Cloud DNS).

Подготовьте ресурсыПодготовьте ресурсы

  1. Создайте сервисный аккаунт.
  2. Назначьте сервисному аккаунту роль postbox.sender.
  3. Создайте статический ключ доступа для сервисного аккаунта. Сохраните идентификатор и секретный ключ.
  4. Создайте адрес.
  5. Пройдите проверку владения доменом.

Настройте директорию для аутентификационных данныхНастройте директорию для аутентификационных данных

  1. Создайте директорию для хранения аутентификационных данных и перейдите в нее:

    Для macOS и Linux:

    mkdir ~/.aws/
    

    Для Windows:

    mkdir C:\Users\<имя_пользователя>\.aws\
    
  2. В директории .aws создайте файл credentials и скопируйте в него аутентификационные данные, полученные при создании статического ключа доступа:

    [default]
    aws_access_key_id = <идентификатор_статического_ключа>
    aws_secret_access_key = <секретный_ключ>
    
  3. Создайте файл config с параметрами региона по умолчанию и скопируйте в него следующую информацию:

    [default]
    region = kz1
    endpoint_url = https://postbox.cloud.yandex.net
    

Использование переменных окруженияИспользование переменных окружения

AWS SDK по умолчанию использует аутентификационные данные из переменных окружения, если они заданы. Эти переменные имеют приоритет над аутентификационными данными, которые указаны в файле .aws/credentials.

Поддерживаются следующие переменные окружения:

  • AWS_ACCESS_KEY_ID — идентификатор статического ключа;
  • AWS_SECRET_ACCESS_KEY — секретный ключ.

Чтобы задать переменные окружения, выполните следующие действия в зависимости от вашей операционной системы:

Linux/macOS
Windows

В терминале выполните команду:

export AWS_ACCESS_KEY_ID=<идентификатор_статического_ключа>
export AWS_SECRET_ACCESS_KEY=<секретный_ключ>

В PowerShell выполните команду:

$Env:AWS_ACCESS_KEY_ID=<идентификатор_статического_ключа>
$Env:AWS_SECRET_ACCESS_KEY=<секретный_ключ>

Создайте и запустите приложениеСоздайте и запустите приложение

  1. Получите код приложения:

    Репозиторий
    Вручную
    1. Склонируйте репозиторий:

      git clone https://github.com/yandex-cloud-examples/yc-postbox-examples
      
    2. Перейдите в папку в склонированном репозитории javascript/.
    3. В файле main.js укажите данные:

      • В поле SENDER — электронную почту отправителя.

        Домен электронной почты отправителя должен совпадать с указанным в адресе Yandex Cloud Postbox, созданном при подготовке к работе. Например, если домен, на который вы подтвердили владение, — yourdomain.com, можно указать электронную почту noreply@yourdomain.com или admin@yourdomain.com, а user@mail.yourdomain.com — нельзя.

      • В поле RECIPIENT — электронную почту получателя. Например: receiver@yourdomain.com. Далее для проверки вам потребуется доступ к этой электронной почте.

    1. Создайте папку postbox-javascript и перейдите в нее.

    2. Создайте файл main.js и вставьте в него код:

      // AWS SDK for JavaScript v3 (ESM)
      import { SESv2Client, SendEmailCommand } from '@aws-sdk/client-sesv2';
      
      // Адрес отправителя должен быть подтвержден с помощью Amazon SES.
      const SENDER = "<адрес_отправителя>";
      
      // Адрес получателя.
      const RECIPIENT = "<адрес_получателя>";
      
      // Тема письма.
      const SUBJECT = "Yandex Cloud Postbox Test via AWS SDK for JavaScript v3";
      
      // HTML-текст письма.
      const HTML_BODY = `<h1>Amazon SES Test Email (AWS SDK for JavaScript v3)</h1>
      <p>This email was sent with <a href='https://yandex.cloud/ru/docs/postbox/quickstart'>Yandex Cloud Postbox</a> using the 
      <a href='https://aws.amazon.com/sdk-for-javascript/'>AWS SDK for JavaScript v3</a>.</p>`;
      
      // Текст письма для почтовых клиентов без поддержки HTML.
      const TEXT_BODY = "This email was sent with Yandex Cloud Postbox using the AWS SDK for JavaScript v3.";
      
      // Кодировка символов в письме.
      const CHARSET = "UTF-8";
      
      // Основная функция
      async function main() {
          // Создайте клиент SES с эндпоинтом для Yandex Cloud Postbox
          const client = new SESv2Client({
              region: 'kz1',
              endpoint: 'https://postbox.cloud.yandex.net',
              // По умолчанию SDK использует цепочку поставщиков учетных данных по умолчанию.
              // Вы можете использовать статические учетные данные, раскомментировав и изменив следующие строки:
              // credentials: {
              //     accessKeyId: 'accessKeyID',
              //     secretAccessKey: 'secretAccessKey',
              // },
          });
      
          // Сборка письма.
          const params = {
              Destination: {
                  ToAddresses: [RECIPIENT],
              },
              Content: {
                  Simple: {
                      Subject: {
                          Charset: CHARSET,
                          Data: SUBJECT,
                      },
                      Body: {
                          Html: {
                              Charset: CHARSET,
                              Data: HTML_BODY,
                          },
                          Text: {
                              Charset: CHARSET,
                              Data: TEXT_BODY,
                          },
                      },
                  },
              },
              FromEmailAddress: SENDER,
          };
      
          try {
              // Создание команды.
              const command = new SendEmailCommand(params);
      
              // Отправка письма.
              const data = await client.send(command);
              console.log(data.MessageId);
          } catch (err) {
              console.error("Error sending email:", err);
              throw err;
          }
      }
      
      // Запуск основной функции.
      main().catch(err => {
          console.error("Unhandled error:", err);
          process.exit(1);
      });
      
    3. В файле main.js укажите данные:

      • В поле SENDER — электронную почту отправителя.

        Домен электронной почты отправителя должен совпадать с указанным в адресе Yandex Cloud Postbox, созданном при подготовке к работе. Например, если домен, на который вы подтвердили владение, — yourdomain.com, можно указать электронную почту noreply@yourdomain.com или admin@yourdomain.com, а user@mail.yourdomain.com — нельзя.

      • В поле RECIPIENT — электронную почту получателя. Например: receiver@yourdomain.com. Далее для проверки вам потребуется доступ к этой электронной почте.

    4. Создайте файл package.json и вставьте в него код:

      {
        "name": "yc-postbox-example",
        "version": "1.0.0",
        "description": "Example of sending emails through Yandex Cloud Postbox using AWS SDK for JavaScript",
        "main": "main.js",
        "type": "module",
        "scripts": {
          "start": "node main.js"
        },
        "dependencies": {
          "@aws-sdk/client-sesv2": "^3.821.0"
        },
        "license": "MIT"
      }
      
  2. Установите зависимости:

    npm install
    

    Результат:

    added 79 packages, and audited 80 packages in 3s
    
    3 packages are looking for funding
      run `npm fund` for details
    
    found 0 vulnerabilities
    
  3. Запустите приложение:

    npm start
    

    Результат:

    > yc-postbox-example@1.0.0 start
    > node main.js
    
    DB6TZYXAOBH1.2E2Q5********@ingress2-klg
    

Проверьте результатПроверьте результат

Убедитесь, что на адрес получателя, заданный в файле main.js в поле RECIPIENT, пришло письмо с указанными параметрами.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Чтобы перестать платить за созданные ресурсы:

  1. Удалите адрес.
  2. Удалите зону DNS, если создавали в ней ресурсную запись.

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

Предыдущая
Go
Следующая
Python
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»