В этом блоге мы собираемся создать почтовый API для отправки почты пользователю с использованием следующих инструментов или технологий.

  1. AWS SES
  2. Лямбда-функция AWS
  3. Узел J

Я предположил, что вы установили свой узел js, а также настроили узел js на своем локальном компьютере.

Итак, теперь мы обсудим вариант использования этого API и почему мы создаем этот API
мы берем пример контактной формы любого веб-сайта, и нам нужно отправить письмо, когда пользователь заполняет контактную форму для любого причине или получает любую помощь от веб-сайта. показано на изображении ниже

В этой форме «Имя», «Электронная почта» и «Сообщение» эти три поля присутствуют. Теперь наша задача — отправить эти данные на идентификатор электронной почты получателя, после чего наш получатель выполнит требование пользователя или ответит на электронное письмо пользователя.

Мы используем две вещи для API:
1) AWS (Amazon Web Services)
2) редактор кода (код VS)

Во-первых, мы настраиваем нашу учетную запись AWS, если у нас нет учетной записи в AWS, если у нас уже есть хорошая учетная запись.

Шаг 1) Войдите с помощью аккаунта Aws:

Я делюсь URL-адресом для входа/регистрации учетной записи AWS

URL-адрес: https://000369398001.signin.aws.amazon.com/console

Появится этот экран. Теперь войдите в систему, используя свои учетные данные Идентификатор учетной записи и Пароль.

Шаг 2) Установите свой регион в соответствии с вашими требованиями.

Как показано на изображении выше, регион доступен в правой части страницы консоли, здесь мы используем регион us-east-1 для нашей функции.

Теперь наша консоль AWS готова, мы переходим к части кодирования.

Шаг 3) Создайте новый проект в коде VS

Вы можете использовать любой редактор кода, но сейчас мы используем код Visual Studio (VS).

i) Создайте файл с любым именем, мы создаем папку aws_Send_mail в редакторе кода.

ii) Введите команду в cmd или интегрированном терминале кода vs.

npm init -y

После ввода этой команды

C:\Aws_Send_Mail>npm init -y
Wrote to C:\Aws_Send_Mail\package.json:

{
  "name": "aws_send_mail",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}



C:\Aws_Send_Mail>

Этот результат показывает, что мы установили имя нашей папки: aws_send_mail, а остальная часть кода автоматически устанавливается для нашего проекта.

iii) установите npm с помощью приведенной ниже команды

npm i 

Наш пакет npm готов.

iv) Создайте новый файл с именем sendMail.js.

v) И нам также нужно установить несколько зависимостей для разработчиков, поэтому введите команду

npm i aws-sdk serverless

В приведенной выше команде мы устанавливаем комплект разработки программного обеспечения aws и бессерверную функцию лямбда.

vi) Создайте файл serverless.yml в корневом файле.

service: email-service
provider:
  name: aws
  runtime: nodejs14.x
functions:
  sendEmail:
    handler: sendEmail.handler

В приведенном выше коде мы предоставляем имя службы, поставщика и нашей функции с тем же именем, что и при создании функции в нашем файле sendEmail.js

Теперь наш файл sendEmail.js вроде

const AWS = require('aws-sdk');

AWS.config.update({ region: "us-east-1" });
 // Create SES service object
const ses = new AWS.SES({ apiVersion: '2010-12-01' });

exports.handler = async (event, context, callback) => {

  // Get the email and user name from the POST request body
  const { email, username,message} = JSON.parse(event.body);
  const sourceMail = '[email protected]';

  // Create the email parameters
  const params = {
    Destination: {
      ToAddresses:[sourceMail]
    },
    Message: {
      Body: {
        Text: {
          Data: `User Name : ${username},\nEmail : ${email},\nMessage : ${message},\n`
        }
      },
      Subject: { Data: `[email protected]` },
    },
    Source: sourceMail
  };

  try {
    // Send the email using SES
    const result = await ses.sendEmail(params).promise();
    console.log('Email sent successfully:', result);
    
    // Return a success response
    const response = {
      statusCode: 200,
      body: JSON.stringify({ message: 'Email sent successfully' })
    };
    callback(null, response);
  } catch (error) {
    console.error('Error sending email:', error);
    
    // Return an error response
    const response = {
      statusCode: 500,
      body: JSON.stringify({ message: 'Error sending email' })
    };
    callback(null, response);
  }
};

Теперь нам нужно развернуть эту функцию на нашем AWS.

Используя приведенную ниже команду, введите cmd

serverless deploy

Теперь нам нужно создать почтовый API и маршруты для нашего почтового API в консоли AWS.

Шаг 4. Проверьте лямбда-функцию в консоли AWS:

Нажмите на лямбда на консоли, показанной на изображениях ниже.

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

Эй… наша лямбда-функция успешно развернута. а также показать в нашем списке функций, теперь нам нужно создать ApiGateway

Шаг 5. Создайте шлюз ApiGateway.

Для этого нажмите на ApiGateway ниже, чтобы перейти к лямбда-функции, как показано на приведенном выше изображении консоли.

теперь нам нужно нажать кнопку «Создать API» в правой части консоли, а затем выбрать наш тип API 4.

HTTP API

API веб-сокета

Rest API (частный)

Rest API (общедоступный)

На данный момент мы выбираем HTTP API, теперь нажмите кнопку сборки в правой части консоли.

В поле интеграция выберите лямбда, чтобы выбрать наш регион aws, и выберите имя лямбда-функции из раскрывающегося списка и нажмите кнопку «Далее».

Выберите наш метод, мы создаем почтовые запросы, поэтому мы выбираем метод POST, и наш путь к ресурсу уже есть, и нажмите «Далее». => Далее => Далее наш ApiGateway готов с запросом POST.

Теперь нам нужно найти URL-адрес вызова и путь к функции.

Шаг 6. Найдите URL-адрес вызова и путь к функции:

Чтобы вызвать URL-адрес, нам нужно нажать ApiGateway = ›, выбрать имя нашего API=›SendEmail.

Мы получаем наш URL-адрес вызова в красном поле, теперь мы находим путь к функции, поэтому нажмите «Маршруты», показанные в синем поле на изображении выше. и мы получаем путь к функции, показанный под изображением в красной рамке.

Теперь скопируйте сначала вызов URL-адреса, а затем путь к функции и вредоносное ПО в URL-адресе почтальона и выберите метод публикации.

Бум……. мы получили ответ, теперь проверьте свою почту, вы также получили письмо.

Надеюсь, вы нашли это информативным, a👏 всегда ценится, спасибо!