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
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?
ResponderEliminarEl link se murió, tendrías el código completo??
Rashp