Yandex funciones enviar correo

Yandex funciones enviar correo

Hoy vamos a crear un llamado. Función Yandex (nombre oficial Funciones de la nube de Yandex), que se coludió con el servicio de listas de correo SendGrid enviará "jabón" a los usuarios que duermen pacíficamente (es broma, sé que todos estamos en contra del spam).

También soy opositor (pero sin fanatismo) de los servidores tradicionales, y partidario de los llamados. sin servidor soluciones (sin servidor), porque no me gusta (y realmente no sé cómo) administrar servidores, y más aún, pagar por el tiempo en que no están cargados. Otra cosa son las funciones. Alguien los atiende sin mi, y pago solo por llamadas. A principios de octubre de 2019, Yandex presentó su Funciones de la nube de Yandex - parece el primero en la Federación Rusa sin servidor. Y lo que es especialmente agradable: para las habilidades de Alice, generalmente son gratuitas, por lo que desde entonces han estado en mi visión periférica. Pero empecemos ya.

Imaginemos tal escenario. Su aplicación (por ejemplo, la habilidad de Alice Recuerda y olvida que por cierto también funciona en Funciones Yandex) solicita al usuario que compre un producto digital, como opciones adicionales, y el usuario realiza un pago. Algún sistema de pago (confusamente similar a Yandex) procesa el pago y lo envía a la dirección que proporcionó (y tendremos un enlace para llamar Funciones Yandex) HTTP- una solicitud que contenga los detalles del pago, como el monto, el nombre completo, el número de teléfono y el correo electrónico del pagador. Queremos procesar estos datos de alguna manera, por ejemplo: verificar la cantidad, hacer las entradas apropiadas en la base de datos, enviar a los usuarios SMS и Correo electrónico con confirmación de recibo de pago y más instrucciones. tal microservicio.

Acerca de cómo desde Funciones Yandex hacer entradas en la base de datos Tienda de fuego en la nube ya hemos cubierto en el tutorial Alicia recuerda todo (y en el futuro, creo, consideraremos un ejemplo para otra base de datos: Base de datos Yandex). Acerca de cómo enviar a los usuarios SMS e integrar nuestra aplicación con Yandex.Dinero - Lo resolveremos en un futuro próximo. Ahora vamos a tratar con el envío de cartas.

1. Crea una cuenta en SendGrid

NotaSendGrid es solo mi elección, que hice por varias razones, la principal de las cuales es que tienen un SDK listo para usar para Node.js. Puede elegir cualquier otro servicio de correo.

proceder a la página de registro de la cuenta y llenar el formulario de registro allí. Luego vamos a Panel De Control, en la barra de navegación seleccione API de correo electrónico -> Guía de integración, y en el panel principal - API web y presiona el botón Elige. Todo como en la imagen:

Yandex funciones enviar correo

En el siguiente paso, elija Node.js:

Yandex funciones enviar correo

A continuación, inventamos para nuestro API-nombre de la clave (se mostrará solo en la consola en la lista de claves, y no tiene nada que ver con nuestro código futuro; se me ocurrió un imperecedero clave-api-demo) y presione el botón Crear clave:

Yandex funciones enviar correo

Se generará la clave, la copiaremos y la guardaremos en el más profundo secreto. Y tendremos una pantalla con un botón Verificar Integración, como en la imagen a continuación, pero aún no lo presionaremos, pero pasaremos a escribir el código:

Yandex funciones enviar correo

2. Escritura de código

Y el código en sí, como puede ver, es ridículamente pequeño: ¡22 líneas!

Yandex funciones enviar correo

En línea #8 mi correo está escrito en código duro (y, por lo tanto, tímidamente cubierto): usted especifica el suyo. En la vida real, recibiremos todos los datos (incluidos email) del objeto evento. Por ejemplo, si el método PUBLICAR un objeto es enviado a nuestra función usuario con campo (propiedad) email, el valor de este campo se puede obtener así:

const { user } = event;
const email = user.email;

Y si la dirección de correo electrónico se pasa a la función por el método , Por ejemplo: https://functions.yandexcloud.net/123abc?[email protected]
valor del parámetro email se puede obtener asi:

const email = event.queryStringParameters.email;

Para echar un vistazo a lo que está contenido exactamente en un objeto evento, puedes crear un simple Función Yandex y gíralo con peticiones:

module.exports.handler = async function (event) {
  return {
   'statusCode': 200, 
   'body': JSON.stringify(event)
  };
};

Más (pero menos inteligible) sobre esto se establece en la documentación oficial. aquí.

Entonces, creamos un directorio de proyecto (por ejemplo, remitente), vaya a él, inicialice el proyecto, instale las dependencias:

mkdir mailer
cd mailer
npm init -y
npm i @sendgrid/mail email-validator dotenv

Aquí solo se requiere el paquete @sendgrid/correo. Bolsa de plastico validador de correo electrónico verifica la validez de la dirección de correo electrónico (¿cómo no lo adiviné de inmediato?), pero si estamos seguros (se ha verificado durante mucho tiempo sin nosotros), no se puede instalar (y, por supuesto, el verificación no debe hacerse en el código). Bolsa de plastico dotenv diseñado para leer registros de un archivo .env como variables de tiempo de ejecución. Pero en Funciones Yandex es posible poner estas variables directamente en el entorno de tiempo de ejecución. ¿Cómo? - Lo mostraré a continuación. Por lo tanto el paquete dotenv tampoco se puede instalar, y el archivo .env - no crear, y al mismo tiempo el código en el archivo index.js no cambies. Pero aquí hemos instalado este paquete, así que creamos archivos. index.js и .env:

touch index.js
touch .env

En archivo index.js escriba 22 líneas de código que se muestran en la captura de pantalla anterior (solo en la línea #8 cambiar tu correo), y en el archivo .env - (sin comillas ni signos de puntuación) especificar un par - el nombre/valor de la clave API, que recibimos recientemente en la consola SendGrid:
SENDGRID_API_KEY=tu-muy-secreta-sendgrid-api-key

Y si quieres menos trabajo, clona el repositorio, instala los paquetes:

git clone https://github.com/stmike/ycf-sendgrid-mailer-tutorial.git
cd ycf-sendgrid-mailer-tutorial
npm i

En archivo index.js, en línea #8 cambiar correo; crear un archivo en el directorio raíz .env, y en él especifica el nombre/valor de la clave APIcomo se muestra justo arriba.

3. Implementar

Más o menos claro y detallado sobre Yandex.Cloud y como colocar Funciones Yandex descrito en mi artículo Alicia en la tierra de Bitrix - Envío a los ignorantes a este país, y para todos los demás (y los que regresaron) - luego un pequeño cómic (es decir, una serie de imágenes y texto).

Crear Código Postal-archivo (llamémoslo, por ejemplo, correo.zip), que incluye el directorio nodo_módulos y archivos .env, índice.js - todo desde nuestro directorio de proyectos:

Yandex funciones enviar correo

Creamos una función con el nombre... correcto - remitente, en el menú de navegación izquierdo, seleccione editor, complete los campos obligatorios y cambie a la pestaña archivo ZIP subiendo nuestro archivo correo.zip:

Yandex funciones enviar correo

Y aquí está la opción mencionada anteriormente para descargar Clave API directamente aquí en lugar de crear un archivo en el proyecto .env, y no instale el paquete dotenv. Pero ya hemos hecho todo esto, así que lo muestro solo a título informativo. Es decir, ¡no hay necesidad de duplicar!

Yandex funciones enviar correo

Ahora haga clic en el botón en la esquina superior derecha Crear versióny espera un par de segundos. Cuando todo esté listo, automáticamente iremos a la sección Descripción. Allí habilitamos la opción funcion publicapara que se pueda interactuar con él desde el mundo exterior.

Yandex funciones enviar correo

Ver el enlace azul al lado de la inscripción Enlace para llamar? Pinchalo. Se abrirá una ventana vacía del navegador... Pero espera, recibí un correo electrónico:

Yandex funciones enviar correo

Ahora puedes volver a la consola. SendGrid, y presione el botón Verificar Integración. El sistema verificará todo a través de sus canales y, como resultado, debería devolver una pantalla de este tipo:

Yandex funciones enviar correo

Entonces, chicos (y chicas, por supuesto), ¡todo es realmente muy simple y elegante! Habrá más artículos. Si te interesa leer esto, suscríbete para no perderte.

4. Donaciones

Yandex funciones enviar correo

Fuente: habr.com

Añadir un comentario