Enviar Emails por consola con sendmail

Este caso fue probado en Canaima y Ubuntu

1- Instalamos SendEmail:

apt-get install sendemail

2- Instalamos los siguientes paquetes necesarios para su correcto funcionamiento con GMail:

apt-get install libnet-ssleay-perl

apt-get install libio-socket-ssl-perl

Ahora ya estamos en condiciones de enviar nuestros correos. Para utilizar nuestra cuenta de GMail, escribimos en la consola:

sendemail -f nombrecuenta@gmail.com -t cuentadestino@isp.com -s smtp.gmail.com:587 -u \
"Asunto" -m "Cuerpo del mensaje" -a archivoadjunto -v -xu nombrecuenta -xp clavecuenta -o tls=yes

Donde:

nombrecuenta@gmail.com” es nuestra cuenta de GMail

cuentadestino@isp.com” es la cuenta a la que queremos enviar nuestro correo (si queremos enviar a varios destinatarios solo debemos dejar un espacio en blanco entre las direcciones de correo)

En “Asunto” va justamente el asunto del correo (si va entre comillas) y en “Cuerpo del mensaje” lo que queramos escribir (también entre comillas)

La opción -a va si queremos enviar un archivo adjunto

nombrecuenta” es el nombre de nuestra cuenta de GMail sin el @

clavecuenta” es nuestra clave de acceso a nuestra cuenta de GMail

Ahora bien ahora un pequeño script hecho en bash para enviar una lista de correos en txt

#!/bin/bash
# -*- ENCODING: UTF-8 -*-
i=0
while read line
do i=$(($i+1));
sendemail -f correo@gmail.com -t $line -s smtp.gmail.com:587 -u "TITULO" -m "CUERPO DEL MENSAJE" -v -xu nombredeusuariosinelaroba -xp contraseña -o tls=yes
done < "/home/direccion/correos"
echo "Final line count is: $i";


11 comentarios

  1.   Fabio.Felio dijo

    ACTUALMENTE la mayoria de la gente JOVEN solo le presta atencion a la cuenta de FACEBOOK y alli estos llegan a la carpeta OTROS. Los CALL CENTERS son legales y los mas jodidos. El CELULAR y la cuenta de FACEBOOK son el objetivos de los neo spammers. Buen tuto, algo basico pero a alguno le servira…

    1.    Fabio.Felio dijo

      Recomiendo usar php + mysql + cron en algun server gratuito usando un proxy como la gente.

      Con esta base de datos de 3 columnas.
      ID(int,autoincrement,primarykey) | email (tinytext) | enviado(boolean)

      Simplemente se debe conseguir un email de la base de datos al que no le hayamos enviado todavia.

      Le enviamos el email, podemos usar el objeto de WP correspondiente para enviar email si estamos en wordpress en un plugin o bien la funcion mail de php.

      anotamos en la base de datos el envio a ese mail y salimos

      Ejecutandolo cada 3 minutos con una tarea planificada usando cron. Para no sobrecargar a los servidores, ni alertar a gmail o hotmail. Esto es lo mas importante…

      O bien, un script en javascript para el navegador usando greasemonkey/tampermonkey que se ejecute en su navegador en la pagina de gmail con su correo abierto. Pueden tambien usar una base de datos de mysql, si tienen un servidor http con mysql y php corriendo pueden realizar una peticion con “ajax” dentro del script y recibir el email. Luego cuando todo sea correcto enviar una peticion al servidor local informandole del envio para que anote.

      En fin, las posibilidades son ilimitadas. Lo unico, que no es practico por lo que aclare en mi primer mensaje, y es ilegal.

      1.    Fabio.Felio dijo

        O bien la legalidad depende de esto:

        http : / / en . wikipedia . org / wiki / CAN-SPAM_Act_of_2003

  2.   eliotime3000 dijo

    Bien, pero eso es mucho más útil si lo que quieres es hacer bulos en cadena y así satisfacer el espíritu lammer que tenemos dentro.

    En fin, gracias por el tip.

  3.   arianfornaris dijo

    Hola, artículo muy interesante. Estoy desarrollando un program que envia ciertos logs a una cuenta de correo pero hay miles de correos que se deben enviar, pues el dicho log es bastante viejo y extenso. Como me conecto poco a internet, la cosa demora. Entonces tengo las siguientes dudas:

    1- ¿Sendmail es más rápido que el módulo smtp de python?
    2- ¿Cómo utilizar una misma sesión (no sé si sesión es la palabra más adecuada) para enviar varios correos?
    3- ¿Es posible alguna forma de que sendmail reporte un progreso?
    4- No tengo idea si smtp implementa algún tipo de compresión de datos, de forma que el volumen de datos a enviar se reduzca drásticamente pues los logs son texto plano.

    Saludos
    Arian Fornaris

  4.   orelvis dijo

    todo muy interesante pero como puedo proteger mi servidor de correo para que no acepte enviar correos si no tienes un usuario en el servidor o si no se envia de una direccion local.

    gracias.

  5.   pablo dijo

    hola muy bueno el script pero al ejecutarlo me aparece este error vos podrias ayudarme a solucionarlo

  6.   pablo dijo

    Aug 20 15:27:29 pablo-hp-envy-15-notebook-pc sendemail[2841]: DEBUG => Connecting to smtp@gmail.com:587
    Aug 20 15:27:32 pablo-hp-envy-15-notebook-pc sendemail[2841]: ERROR => Connection attempt to smtp@gmail.com:587 failed: IO::Socket::INET6: getaddrinfo: Error del sistema
    Aug 20 15:27:32 pablo-hp-envy-15-notebook-pc sendemail[2841]: HINT => Try specifying a different mail relay with the -s option.
    final line count is: 1

  7.   nestor dijo

    Gracias es lo que buscaba.

  8.   verlaine dijo

    funcionara con otro correo pop3

  9.   Marcos Alexis dijo

    Como lo configuro para usarlo con hotmail?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.