Повторная отправка: транзакционная 🤝 электронная почта 📨 для разработчиков 🧑‍💻 в масштабе ⚖️ стала проще.

Введение

Необходимость поддерживать постоянную связь с вашими клиентами или потребителями через ваш продукт возникает с каждым программным обеспечением, созданным от корпоративного программного обеспечения до платформы подписки на информационный бюллетень. Повторная отправка – лучший API для обращения к людям, а не к папкам со спамом. Создавайте, тестируйте и доставляйте транзакционные электронные письма в любом масштабе. Этот инструмент во многом поддерживается Y-Combinator.

Resend — это API электронной почты для разработчиков.

Давайте без спешки углубимся в подробности о Resend и рассмотрим его использование, поскольку он поддерживается различными фреймворками, такими как Nextjs, Nodejs в качестве среды выполнения, PHP, Laravel, phyton, expressjs, ruby, rails, Golang, Elixir. Включая бессерверные инструменты, такие как Supabase Edge Functions, Cloudflare Workers, AWS Lambda, Deno Deploy и Vercel Edge Functions.

1. Начало работы с Nodejs

Предпосылки

Чтобы получить максимальную отдачу от этого руководства, вам необходимо:

Давайте выделим шаги для повторной отправки в нашем проекте, работающем по мере необходимости.

Установить

Получите пакет SDK для повторной отправки Node.js.

npm install resend

Отправить электронное письмо с помощью HTML

Самый простой способ отправить электронное письмо — использовать параметр html.

import { Resend } from 'resend';
const resend = new Resend('re_123456789');

(async function() {
  try {
    const data = await resend.emails.send({
      from: '[email protected]',
      to: '[email protected]',
      subject: 'Hello World',
      html: '<strong>It works!</strong>'
    });

    console.log(data);
  } catch (error) {
    console.error(error);
  }
})();

Чтобы немного объяснить, что происходит в приведенном выше фрагменте кода.

  • Модуль Resend импортируется из пакета 'resend'.
  • Экземпляр класса Resend создается с помощью ключа API «re_123456789».
  • Определена асинхронная функция, которая служит точкой входа для отправки электронной почты.
  • Внутри функции вызывается метод send объекта resend.emails с необходимыми параметрами для электронного письма, такими как отправитель, получатель, тема и содержимое HTML.
  • Функция ожидает ответа от метода send и сохраняет его в переменной data.
  • Если электронное письмо успешно отправлено, данные записываются в консоль.
  • Если в процессе отправки возникает ошибка, она перехватывается и регистрируется в консоли.

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

2. Использование с функциями Vercel Edge

Узнайте, как отправить свое первое электронное письмо с помощью Vercel Edge Functions, одного из бессерверных инструментов.

Предпосылки

Чтобы получить максимальную отдачу от этого руководства, вам необходимо:

Убедитесь, что у вас установлена ​​последняя версия Vercel CLI.

Создайте функцию Next.js

Создайте файл маршрута в разделе app/api/send/route.ts, если вы используете Маршрутизатор приложений.

файл route.ts

import { NextResponse } from 'next/server';

export const runtime = 'edge';
export const dynamic = 'force-dynamic';

const RESEND_API_KEY = 're_123456789';

export async function POST() {
    const res = await fetch('https://api.resend.com/emails', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Authorization': `Bearer ${RESEND_API_KEY}`
        },
        body: JSON.stringify({
            from: '[email protected]',
            to: '[email protected]',
            subject: 'hello world',
            html: '<strong>it works!</strong>',
        })
    });

    if (res.ok) {
        const data = await res.json();
        return NextResponse.json(data);
    }
}

Давайте рассмотрим, как работает этот блок кода. Этот фрагмент кода демонстрирует конечную точку API, использующую Next.js и службу Resend для отправки электронного письма.

  • Модуль NextResponse импортируется из пакета next/server.
  • Две константы, среда выполнения и динамическая, объявлены и им присвоены определенные значения.
  • Ключ Resend API хранится в константе RESEND_API_KEY.
  • Определена асинхронная функция с именем POST, представляющая конечную точку API для обработки HTTP-запросов POST.
  • Внутри функции выполняется запрос fetch к конечной точке Resend API с необходимыми заголовками и полезной нагрузкой (включая сведения об электронной почте).
  • Если ответ от API (res) успешен (статус HTTP 200), ответ JSON анализируется (await res.json()) и возвращается как ответ JSON. используя NextResponse.json(данные).
  • Если во время запроса API возникает ошибка, статус ответа не будет в порядке, и функция вернет ответ по умолчанию.

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

Отправить электронную почту локально

Запустить функцию локально:

npx next dev

Откройте URL-адрес конечной точки для отправки электронного письма: http://localhost:3000/api/send.

Отправить электронную почту в производстве

Развернуть функцию в Vercel:

vercel

Откройте URL-адрес конечной точки, чтобы отправить электронное письмо: https://your-project.vercel.app/api/send.

3. Электронные письма

Чтобы улучшить опыт разработки, Resend предоставляет вам визуальные эффекты для выполнения определенных функций в среде разработки.

Просмотр сведений об электронной почте

Вы можете просмотреть все метаданные, связанные с электронным письмом, включая адрес отправителя, адрес получателя, тему и многое другое.

Вот все события, которые могут быть связаны с электронной почтой:

  • Отправлено — запрос API выполнен успешно, и Resend попытается доставить сообщение на почтовый сервер получателя.
  • Доставлено. Повторно отправить успешно доставленное электронное письмо на почтовый сервер получателя.
  • Задержка доставки. Электронное письмо не может быть доставлено на почтовый сервер получателя из-за временной проблемы. Задержки доставки могут возникать, например, когда почтовый ящик получателя переполнен или когда на принимающем почтовом сервере возникает временная проблема.
  • Подана жалоба. Электронное письмо было успешно доставлено на почтовый сервер получателя, но получатель пометил его как спам.
  • Отклонено: почтовый сервер получателя навсегда отклонил письмо.

Поделитесь ссылкой на электронную почту

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

Существуют и другие функции, предоставляемые повторной отправкой, такие как веб-перехватчики и добавление доменов вашего проекта для повторной отправки.

Для справки по его использованию и подробного объяснения этих функций. Ознакомьтесь с документацией ссылка.

4. Вывод:

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

5. Ссылка:

Все ссылки из этой статьи были найдены по этой ссылке ниже.

https://resend.com/home

Находите эту статью полезной? Поставьте лайк, прокомментируйте или поделитесь, чтобы увеличить аудиторию.

Грациас 🙏.