В этом блоге мы собираемся создать почтовый API для отправки почты пользователю с использованием следующих инструментов или технологий.
- AWS SES
- Лямбда-функция AWS
- Узел 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👏 всегда ценится, спасибо!