Cómo usar SWAKS con SparkPost

Pájaro

24 jun 2021

Correo electrónico

1 min read

Cómo usar SWAKS con SparkPost

Puntos clave

    • SWAKS (Swiss Army Knife for SMTP) es una poderosa herramienta de línea de comandos para enviar correos electrónicos y probar conexiones SMTP de manera flexible y amigable para scripts.

    • Simplifica las pruebas manuales de SMTP en comparación con telnet al ofrecer banderas claras, manejo de autenticación, archivos adjuntos, pruebas TLS, sincronización y encabezados personalizados.

    • La herramienta funciona en múltiples plataformas y es amigable para principiantes a pesar de sus amplias capacidades.

    • El uso básico incluye enviar un mensaje simple, agregar líneas de asunto, incluir encabezados y enviar archivos adjuntos sin conversión manual a base64.

    • SWAKS es ideal para comprobaciones de fiabilidad y monitoreo — se puede programar mediante cron para realizar envíos regulares de pruebas “¿todavía funciona?”.

    • También puede medir la latencia y velocidad de conexión cronometrando los handshakes SMTP sin enviar un correo electrónico completo.

    • SWAKS soporta pruebas detalladas de TLS, incluyendo la validación de compatibilidad con estándares modernos como TLS 1.2 (requerido por SparkPost).

    • Al usar SparkPost, SWAKS permite una inyección fácil en los servidores SMTP de SparkPost usando una clave API para la autenticación.

    • Forzar la versión de TLS (por ejemplo, tlsv1_2) permite a los remitentes probar sus entornos y asegurarse del cumplimiento con las deprecaciones de SparkPost.

    • SWAKS proporciona una depuración detallada, siendo útil para validar configuraciones SMTP y diagnosticar conexiones fallidas.

    • Un archivo de configuración .swaksrc permite a los usuarios almacenar parámetros predeterminados, habilitando el envío con un solo comando para pruebas repetidas.

    • SWAKS soporta anular mediante la línea de comandos, permitiendo a los usuarios ajustar cualquier campo de manera dinámica cuando sea necesario.

Destacados de Q&A

  • ¿Qué es SWAKS?

    Una herramienta de prueba SMTP de línea de comandos flexible conocida como la "navaja suiza" para el correo electrónico.

  • ¿Por qué usar SWAKS en lugar de telnet?

    Automatiza el protocolo SMTP, admite autenticación, TLS, adjuntos y encabezados, haciendo que las pruebas sean más fáciles y potentes.

  • ¿Qué plataformas admite SWAKS?

    Linux, macOS y la mayoría de los sistemas similares a Unix, con una sintaxis similar entre ellos.

  • ¿Cómo envío un correo electrónico de prueba básico con SWAKS?

    Ejecutando un comando simple que especifica el destinatario, el remitente y la dirección del servidor.

  • ¿Puede SWAKS enviar mensajes con líneas de asunto y encabezados personalizados?

    Sí — admite temas, anulaciones de destinatario/remitente e inyección arbitraria de encabezados.

  • ¿SWAKS admite el envío de archivos adjuntos?

    Sí — y maneja automáticamente la codificación base64 por ti.

  • ¿Puede SWAKS ayudar a probar la compatibilidad TLS?

    Absolutamente — puedes forzar versiones específicas de TLS (como TLS 1.2) o probar el soporte de cifrado.

  • ¿Por qué es importante TLS 1.2 al enviar a SparkPost?

    Las versiones anteriores de TLS están obsoletas; SparkPost requiere TLS 1.2+ para conexiones seguras.

  • ¿Cómo autentico con SparkPost al usar SWAKS?

    Usando tu clave API de SparkPost como la contraseña SMTP durante el comando.

  • ¿Puede SWAKS medir el rendimiento o la latencia?

    Sí — usando el comando time y ciclos parciales de SMTP para medir la velocidad del apretón de manos.

  • ¿SWAKS soporta automation?

    Sí — puedes ejecutarlo a través de trabajos cron para probar repetidamente los entornos SMTP.

  • ¿Qué es un archivo .swaksrc y por qué usarlo?

    Es un archivo de configuración que almacena parámetros de SWAKS predeterminados, permitiendo el envío con un solo comando con sobrescrituras opcionales.

Esta es una herramienta de línea de comandos que puede enviar correos electrónicos a través de SMTP. No solo es fácil de usar, sino que también proporciona simultáneamente una multitud de opciones cuando se necesita.

El año pasado, publicamos un artículo de blog que muestra cómo usar la herramienta telnet ubicua y muy útil para verificar una conexión SMTP.

El siguiente paso es simplificar el proceso manual usando una increíble herramienta de “siguiente nivel” (se refiere a sí misma como la navaja suiza del correo electrónico) llamada SWAKS. Esta es una herramienta de línea de comandos que puede enviar correos electrónicos a través de SMTP. No solo es fácil de usar, sino que también proporciona una gran cantidad de opciones cuando se necesita.

Al principio, me intimidaba la cantidad de opciones, pero es perfectamente utilizable con las opciones más básicas. Si tienes algún problema, simplemente guarda esta página en tus favoritos, copia y pega los ejemplos, y modifícalos a tu gusto. Al final de este blog, una vez que hayas adquirido cierta familiaridad y no tengas mucha variación/dinámica en tus comandos de SWAKS, te mostraré cómo crear un archivo de configuración que predefine todos tus parámetros por defecto. ¡Esto hace que ejecutar SWAKS sea literalmente a un botón (bueno, “tecla”) de distancia! 

Para el propósito de este ejercicio, vamos a ejecutar los comandos desde un servidor CentOS 7, pero los comandos son similares en todas las plataformas compatibles. Como se mencionó anteriormente, si te quedas atascado, simplemente copia y pega directamente en tu sistema y modifica lo que necesites. Aquí están los conceptos básicos:

El año pasado, publicamos un artículo de blog que muestra cómo usar la herramienta telnet ubicua y muy útil para verificar una conexión SMTP.

El siguiente paso es simplificar el proceso manual usando una increíble herramienta de “siguiente nivel” (se refiere a sí misma como la navaja suiza del correo electrónico) llamada SWAKS. Esta es una herramienta de línea de comandos que puede enviar correos electrónicos a través de SMTP. No solo es fácil de usar, sino que también proporciona una gran cantidad de opciones cuando se necesita.

Al principio, me intimidaba la cantidad de opciones, pero es perfectamente utilizable con las opciones más básicas. Si tienes algún problema, simplemente guarda esta página en tus favoritos, copia y pega los ejemplos, y modifícalos a tu gusto. Al final de este blog, una vez que hayas adquirido cierta familiaridad y no tengas mucha variación/dinámica en tus comandos de SWAKS, te mostraré cómo crear un archivo de configuración que predefine todos tus parámetros por defecto. ¡Esto hace que ejecutar SWAKS sea literalmente a un botón (bueno, “tecla”) de distancia! 

Para el propósito de este ejercicio, vamos a ejecutar los comandos desde un servidor CentOS 7, pero los comandos son similares en todas las plataformas compatibles. Como se mencionó anteriormente, si te quedas atascado, simplemente copia y pega directamente en tu sistema y modifica lo que necesites. Aquí están los conceptos básicos:

El año pasado, publicamos un artículo de blog que muestra cómo usar la herramienta telnet ubicua y muy útil para verificar una conexión SMTP.

El siguiente paso es simplificar el proceso manual usando una increíble herramienta de “siguiente nivel” (se refiere a sí misma como la navaja suiza del correo electrónico) llamada SWAKS. Esta es una herramienta de línea de comandos que puede enviar correos electrónicos a través de SMTP. No solo es fácil de usar, sino que también proporciona una gran cantidad de opciones cuando se necesita.

Al principio, me intimidaba la cantidad de opciones, pero es perfectamente utilizable con las opciones más básicas. Si tienes algún problema, simplemente guarda esta página en tus favoritos, copia y pega los ejemplos, y modifícalos a tu gusto. Al final de este blog, una vez que hayas adquirido cierta familiaridad y no tengas mucha variación/dinámica en tus comandos de SWAKS, te mostraré cómo crear un archivo de configuración que predefine todos tus parámetros por defecto. ¡Esto hace que ejecutar SWAKS sea literalmente a un botón (bueno, “tecla”) de distancia! 

Para el propósito de este ejercicio, vamos a ejecutar los comandos desde un servidor CentOS 7, pero los comandos son similares en todas las plataformas compatibles. Como se mencionó anteriormente, si te quedas atascado, simplemente copia y pega directamente en tu sistema y modifica lo que necesites. Aquí están los conceptos básicos:

Instalar

sudo yum install epel-release -y && sudo yum install swaks -y

Una vez instalado, aquí tienes la sintaxis básica para enviar un mensaje. En este ejemplo, estamos usando la dirección local del servidor:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Envía un mensaje con una línea de encabezado de "Subject" + otros encabezados e incluye un texto "Hello World!" en el cuerpo:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Aquí te explico cómo añadir un archivo adjunto, donde SWAKS hace la conversión a base64 por ti, ideal para probar los límites de tamaño de mensaje:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

¡Básicamente ya estás preparado! Ahora veamos cómo puedes mejorar tu configuración. Aquí tienes algunas ideas:

  • Usa un programador como chron para hacer pruebas básicas ‘¿funciona?’ que pueden servir como base o incluso aumentar tu sistema de monitoreo.

  • Mide la latencia al conectar y cerrar una conexión a un servidor de correo.

  • Prueba diferentes versiones de TLS y cifrados

No vas a quedarte solo aquí, te mostraré cómo hacer todo lo anterior. Esta vez vamos a inyectar en nuestros servidores SparkPost.

Envía un mensaje a nuestros servidores SparkPost (Cómo crear la clave API, y las opciones SMTP). Una vez que obtengas tu clave de autenticación, pégala en el comando (¡asegúrate de mantener la clave a salvo y segura!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Si buscas orientación sobre cómo solucionar problemas de envío vía SMTP a nuestros servidores, consulta nuestro artículo de solución de problemas SMTP. Para pruebas básicas de conexión SMTP, también puedes verificar conexiones SMTP usando sesiones telnet manuales.

Siguiendo las mejores prácticas de seguridad, SparkPost ha desaprobado todas las versiones TLS anteriores excepto v1.2 y superiores. Si quieres ver si tu sistema es compatible, SWAKS te permite probar versiones específicas de TLS y cifrados.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

En este ejemplo, estamos usando “tlsv1_2” pero adelante, cambia eso a “tlsv1_1” y utilízalo en otros dominios para observar su compatibilidad.

¿Qué pasa si quieres cronometrar qué tan rápido responde un servidor de correo? SWAKS puede pasar por el ciclo SMTP y desconectar en algunos puntos sin enviar un mensaje, y puedes cronometrarlo usando el comando “time” que muestra al final de la salida:

$ time swaks -s 127.0.0.1 
  -f sender@from.com 
  -t them@recipient.com 
  test 
  --quit-after RCPT
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
...
 -> RCPT TO:<them@recipient.com>
<- 250 2.1.5 <them@recipient.com> ok
 -> QUIT
<

Como prometí, si has llegado hasta aquí, la recompensa es este sencillo canto un archivo de configuración para establecer parámetros predeterminados:

$ cd $HOME
$ vim .swaksrc

Copia y pega esto en el archivo .swaksrc:

--from swakstest@jasdevism.com
-h-From: "Jas Swaks" <swakstest@jasdevism.com>
-s 127.0.0.1
--body "This is a test!"
--to jsingh@sparkpost.com

Una vez que lo guardes, simplemente escribe “swaks“ y pre-llena todo y lo envía felizmente por su camino. Incluso mejor, puedes sobrescribirlo añadiéndolo en la línea de comandos, por ejemplo, si deseas un destinatario diferente:

swaks -t recipient@somewherelse.com
sudo yum install epel-release -y && sudo yum install swaks -y

Una vez instalado, aquí tienes la sintaxis básica para enviar un mensaje. En este ejemplo, estamos usando la dirección local del servidor:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Envía un mensaje con una línea de encabezado de "Subject" + otros encabezados e incluye un texto "Hello World!" en el cuerpo:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Aquí te explico cómo añadir un archivo adjunto, donde SWAKS hace la conversión a base64 por ti, ideal para probar los límites de tamaño de mensaje:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

¡Básicamente ya estás preparado! Ahora veamos cómo puedes mejorar tu configuración. Aquí tienes algunas ideas:

  • Usa un programador como chron para hacer pruebas básicas ‘¿funciona?’ que pueden servir como base o incluso aumentar tu sistema de monitoreo.

  • Mide la latencia al conectar y cerrar una conexión a un servidor de correo.

  • Prueba diferentes versiones de TLS y cifrados

No vas a quedarte solo aquí, te mostraré cómo hacer todo lo anterior. Esta vez vamos a inyectar en nuestros servidores SparkPost.

Envía un mensaje a nuestros servidores SparkPost (Cómo crear la clave API, y las opciones SMTP). Una vez que obtengas tu clave de autenticación, pégala en el comando (¡asegúrate de mantener la clave a salvo y segura!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Si buscas orientación sobre cómo solucionar problemas de envío vía SMTP a nuestros servidores, consulta nuestro artículo de solución de problemas SMTP. Para pruebas básicas de conexión SMTP, también puedes verificar conexiones SMTP usando sesiones telnet manuales.

Siguiendo las mejores prácticas de seguridad, SparkPost ha desaprobado todas las versiones TLS anteriores excepto v1.2 y superiores. Si quieres ver si tu sistema es compatible, SWAKS te permite probar versiones específicas de TLS y cifrados.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

En este ejemplo, estamos usando “tlsv1_2” pero adelante, cambia eso a “tlsv1_1” y utilízalo en otros dominios para observar su compatibilidad.

¿Qué pasa si quieres cronometrar qué tan rápido responde un servidor de correo? SWAKS puede pasar por el ciclo SMTP y desconectar en algunos puntos sin enviar un mensaje, y puedes cronometrarlo usando el comando “time” que muestra al final de la salida:

$ time swaks -s 127.0.0.1 
  -f sender@from.com 
  -t them@recipient.com 
  test 
  --quit-after RCPT
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
...
 -> RCPT TO:<them@recipient.com>
<- 250 2.1.5 <them@recipient.com> ok
 -> QUIT
<

Como prometí, si has llegado hasta aquí, la recompensa es este sencillo canto un archivo de configuración para establecer parámetros predeterminados:

$ cd $HOME
$ vim .swaksrc

Copia y pega esto en el archivo .swaksrc:

--from swakstest@jasdevism.com
-h-From: "Jas Swaks" <swakstest@jasdevism.com>
-s 127.0.0.1
--body "This is a test!"
--to jsingh@sparkpost.com

Una vez que lo guardes, simplemente escribe “swaks“ y pre-llena todo y lo envía felizmente por su camino. Incluso mejor, puedes sobrescribirlo añadiéndolo en la línea de comandos, por ejemplo, si deseas un destinatario diferente:

swaks -t recipient@somewherelse.com
sudo yum install epel-release -y && sudo yum install swaks -y

Una vez instalado, aquí tienes la sintaxis básica para enviar un mensaje. En este ejemplo, estamos usando la dirección local del servidor:

swaks -s 127.0.0.1 -f sender@from.com -t recipient@recipient.com

Envía un mensaje con una línea de encabezado de "Subject" + otros encabezados e incluye un texto "Hello World!" en el cuerpo:

swaks -s 127.0.0.1 
  -f me@from.com 
  -t them@recipient.com 
  --header "Subject: Hello! This is the subject header" 
  --header "Second_Header: 123" 
  --header "Third_Header: XYZ" 
  --body "Hello World!"

Aquí te explico cómo añadir un archivo adjunto, donde SWAKS hace la conversión a base64 por ti, ideal para probar los límites de tamaño de mensaje:

swaks -s 127.0.0.1 -f me@from.com -t them@recipient.com --attach /path/to/file.tgz

¡Básicamente ya estás preparado! Ahora veamos cómo puedes mejorar tu configuración. Aquí tienes algunas ideas:

  • Usa un programador como chron para hacer pruebas básicas ‘¿funciona?’ que pueden servir como base o incluso aumentar tu sistema de monitoreo.

  • Mide la latencia al conectar y cerrar una conexión a un servidor de correo.

  • Prueba diferentes versiones de TLS y cifrados

No vas a quedarte solo aquí, te mostraré cómo hacer todo lo anterior. Esta vez vamos a inyectar en nuestros servidores SparkPost.

Envía un mensaje a nuestros servidores SparkPost (Cómo crear la clave API, y las opciones SMTP). Una vez que obtengas tu clave de autenticación, pégala en el comando (¡asegúrate de mantener la clave a salvo y segura!):

swaks 
  --server smtp.sparkpostmail.com:587 
  --tls 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_AUTH_KEY" 
  -f me@from.com 
  -t them@recipient.com

Si buscas orientación sobre cómo solucionar problemas de envío vía SMTP a nuestros servidores, consulta nuestro artículo de solución de problemas SMTP. Para pruebas básicas de conexión SMTP, también puedes verificar conexiones SMTP usando sesiones telnet manuales.

Siguiendo las mejores prácticas de seguridad, SparkPost ha desaprobado todas las versiones TLS anteriores excepto v1.2 y superiores. Si quieres ver si tu sistema es compatible, SWAKS te permite probar versiones específicas de TLS y cifrados.

swaks 
  -s smtp.sparkpostmail.com:587 
  --tls 
  -f me@from.com 
  -t them@recipient.com 
  --auth-user SMTP_Injection 
  --auth-password "YOUR_API_KEY" 
  -tlsp tlsv1_2 
  --tls-cipher ECDHE-RSA-AES128-GCM-SHA256

En este ejemplo, estamos usando “tlsv1_2” pero adelante, cambia eso a “tlsv1_1” y utilízalo en otros dominios para observar su compatibilidad.

¿Qué pasa si quieres cronometrar qué tan rápido responde un servidor de correo? SWAKS puede pasar por el ciclo SMTP y desconectar en algunos puntos sin enviar un mensaje, y puedes cronometrarlo usando el comando “time” que muestra al final de la salida:

$ time swaks -s 127.0.0.1 
  -f sender@from.com 
  -t them@recipient.com 
  test 
  --quit-after RCPT
=== Trying 127.0.0.1:25...
=== Connected to 127.0.0.1.
...
 -> RCPT TO:<them@recipient.com>
<- 250 2.1.5 <them@recipient.com> ok
 -> QUIT
<

Como prometí, si has llegado hasta aquí, la recompensa es este sencillo canto un archivo de configuración para establecer parámetros predeterminados:

$ cd $HOME
$ vim .swaksrc

Copia y pega esto en el archivo .swaksrc:

--from swakstest@jasdevism.com
-h-From: "Jas Swaks" <swakstest@jasdevism.com>
-s 127.0.0.1
--body "This is a test!"
--to jsingh@sparkpost.com

Una vez que lo guardes, simplemente escribe “swaks“ y pre-llena todo y lo envía felizmente por su camino. Incluso mejor, puedes sobrescribirlo añadiéndolo en la línea de comandos, por ejemplo, si deseas un destinatario diferente:

swaks -t recipient@somewherelse.com

Otras noticias

Leer más de esta categoría

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird