domingo, 9 de enero de 2011

SPAM desde ip validas

este es un pequeño script creado para poder enviar correos masivos desde cuentas se servidores smtp validos ; por ejemplo el siguiente es de gmail.com usando el comando sendEmail

debes tener un archivo llamado usuarios.txt con la estructura mail@gmail.com clave
donde pondras todas las cuentas reales de gmail que tienes .. es decir

tuusuario1@gmail.com clave1
tuusuario2@gmail.com clave2


la lista de correos se pasa como primer argumento del comando
tiene que ser un texto plano y nada mas (el script se encarga de sacar los correos de cualquer texto que le entreges creando un archivo lista.txt )

como prerequisito se debe tener el script sendEmail (ojo no es el smtp sendmail)
desde debian u deribados

sudo aptitude install sendemail

desde opensuse

zypper in sendemail

ejemplos de utilizacion del script

$ sh spam.sh /home/tuuser/listadecorreos /home/tuuser/mensaje.html

el mensaje puede ser un html, recalco que el mail nosera enviado a spam ya que estamos usando una cuenta gmail .

uno de los inconvenientes de este script es que como el server gmail permite enviar 500 mails cada 24 hrs . tendriamos que tener varias cuentas para enviar 5000. pero se viene spam.sh
version 2 donde aprovechamos un server publico para enviar correos ilimitados sin problemas con envios a spam :B
les dejo la descarga de script y el codigo

http://goo.gl/Umzkj



#!/bin/bash
# MailSpam V 0.1
# Autor: Francisco Cespedes
# Script mandar mails masivos con cuentas reales
# server usado gmail
# --argumentos --
# el primer argumento es la direccion de un archivo que contiene correos en un texto plano
# version beta .. configurar archivos usuarios. separados por cantraseña y password
# ejemplo usuario@gmail.com clave
#-------------------
SERVER="smtp.gmail.com:587"
MENSAJE=$(cat -s $2) # para incluir mensaje agregar -m a sedemail
ASUNTO="el asunto"
ADJUNTO="" # adjuntar con -a y direccion completa del archivo

# separa los correos que existan de cualquer texto plano.
grep -Eio '[a-z0-9._-]+@[a-z0-9.-]+[a-z]{2,4}' $1 |sort |uniq > lista.txt
# bucle que envia los correos separados por mail.
# -- deben ser 2 bucles uno para el correo del cual se van a enviar los correos
# -- y otro con los correos destinarios
CONTADOR=0
while read line
do
CORREO=$(echo $line | gawk '{print $1}')
PASSWORD=$(echo $line | gawk '{print $2}' )
USUARIO=$(echo $CORREO |gawk '{print $1}' FS="@" )

while read line2
do
let CONTADOR+=1
sendEmail -f $CORREO -t $line2 -s $SERVER -o tls=yes -xu $USUARIO -u $ASUNTO -xp $PASSWORD -m $MENSAJE
if [ $CONTADOR -eq 499 ]; then
break
fi
done < lista.txt
echo "siguiente usuario: " $CORREO
let CONTADOR=0
done < usuarios.txt
done < usuarios.txt

1 comentario:

  1. Me interesa tu código, la versión 2 para usar servidores públicos la tenes implementada, o tenes algún avance de la misma?
    El link se murió, tendrías el código completo??


    Rashp

    ResponderEliminar