Повторная отправка: транзакционная 🤝 электронная почта 📨 для разработчиков 🧑💻 в масштабе ⚖️ стала проще.
Введение
Необходимость поддерживать постоянную связь с вашими клиентами или потребителями через ваш продукт возникает с каждым программным обеспечением, созданным от корпоративного программного обеспечения до платформы подписки на информационный бюллетень. Повторная отправка – лучший 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
Предпосылки
Чтобы получить максимальную отдачу от этого руководства, вам необходимо:
- Создать API-ключ.
- Подтвердите свой домен
Шаги по достижению обоих руководств можно выполнить, щелкнув обе опции, поскольку они будут интерактивными ссылками для перехода.
Давайте выделим шаги для повторной отправки в нашем проекте, работающем по мере необходимости.
Установить
Получите пакет 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
Находите эту статью полезной? Поставьте лайк, прокомментируйте или поделитесь, чтобы увеличить аудиторию.
Грациас 🙏.