Comando Mail

Forums: 

Hola todos! soy nuevo en esto de Gnu/linux
me mandaron un deber de programacion Bash
y me pide que envie un mail a todos los usuarios del sistema menos a mi usuario!
como lo podria hacer??
se que se usa el comando mail.

gracias por la antencion!!

Hola: Estos serian los pasos

Imagen de Root Bit

Hola:

Estos serian los pasos que puedes seguir:

1. "Todos los usarios" los puedes sacar de /etc/passwd y ponerlos en un archivo llamado "todos" por su puesto es logico suponer que este archivo ya no debera contener tu usuario.

2. En el archivo aliases creas un alias de esta forma:
todos::include:/path/todos
3. Finalmente tu script unicamente a traves del comando "mail" debera enviar un correo a todos@tudominio.xxx

Intenta hacerlo y nos avisas si tienes algun problema.

There are only 10 types people in the word:
Those who understand binary and those who don't

There are only 10 types people in the world:
Those who understand binary and those who don't

Buenas, tengo q hacer algo

Buenas, tengo q hacer algo relacionado a esto. Lo q no entiendo bien es la parte del destinatario o sea donde se pone: todos@tudominio.xxx, q va en cada cual.

Yo debo hacer uns script (o escucho otra alternativa) en la cual cuando pase ciertas accion, mande un email a ciertas cuentas externas...pero tmb ya q estoy en este post, quiero saber como mandar el email a usuarios del sistema. No entiendo bien como reemplazar en todos@tudominio.xxx. Ademas si quiero mandar email a cuentas externas, con el comando 'mail' no me es suficiente, es así?

Agradezco la ayuda q siempre brindan. Espero poder ayudar algun dia!! je Besitos.

Bueno, creo que te hiciste

Imagen de deathUser

Bueno, creo que te hiciste bolas un poco en la explicación de tu requerimiento (o ya tengo sobredosis de biela), pero de lo que entendí ...

Te explico un poco el script en cuestión:


for i in `awk -F: < /etc/passwd '{print $1}'|grep -v miusuario`; do
echo HOLA | mail $i
done

La expresión:


awk -F: < /etc/passwd '{print $1}'|grep -v miusuario

Te retorna la lista de los usuarios del sistema, excluido el usuario "miusuario" para no enviar un e-mail a dicho usuario, requerimiento original de Charly.

En el for, por cada uno de los usuarios retornados en la lista anterior, se ejecuta el comando:


echo HOLA | mail usuario_de_la_lista

Lo que envía un e-mail con "HOLA" como contenido al usuario "usuario_de_la_lista" (el que es tomando del archivo /etc/passwd, que contiene todos los usuarios del linux), se puede agregar otras cosas, como por ejemplo un archivo como cuerpo del mensaje, en lugar del "HOLA" y un subject por ejemplo o un contenido personalizado construido a partir de la lista de usuarios, por ejemplo:


for i in `awk -F: < /etc/passwd '{print $1}'|grep -v miusuario`; do
mail -s "Este es el asunto del mail" $i<

Ahora, supongo que la lista de mails externos la tendrás en por ejemplo, un archivo de texto, supongamos que la tienes en un archivo de texto, una dirección por línea, algo como:

usuario1@tudominio.xxx
usuario2@tudominio.xxx
...
usuarion@tudominio.xxx

Basta con construir el script usando como fuente dicho archivo, suponiendo que se llama "lista.txt", sería algo como:


for i in `cat lista.txt`; do
echo "Cuerpo del mail ... " | mail -s "Asunto del mail" $i
done

Y listo ...

Suerte ...

bye
;)