View Full Version : Semplice script per mailserver
Sto cercando di sviluppare uno script .sh che, sfruttando il programma sendemail in accoppiata con un elenco di email sotto forma di file .txt e il corpo del messaggio, sempre sotto forma di file.txt invii in automatico una newsletter ai clienti della mia società.
Dunque le azioni da eseguire sono queste :
1_Leggi la prima riga del documento "ElencoMail.txt" e inseriscila come destinatario all'interno del comando ( dopo l'opzione -t )
sendemail -f andrea.miocognome@miasocietà.com -t DESTINATARIO (L'INDIRIZZO SARA' INSERITO QUI) -u Company Presentation B -s smtpout.secureserver.net -xu andrea.miocognome@miasocieta.com -xp ******** -o message-file=/home/andrea/Documenti/Officia/send/mail.txt
2_Cancella la prima riga del documento txt (in questo modo quella che prima era la seconda riga diventa ora la prima e posso avviare un loop)
3_Se non c'e' piu nessuna email nel documento di testo ---->
<echo> Ho finito!
Altrimenti torna al punto 1
Ho le idee chiare ma non so come metterle in pratica visto che sono piuttosto nuovo nell'ambiente linux... HELP ME!
eclissi83
09-08-2010, 06:15
ti faccio un esempio di quello che puo' essere uno script; prendilo con le molle perche' lo faccio senza controllare tutto e dopo 7 ore di lavoro notturno...
#!/bin/bash
#Variabili
SND=`which sendmail`
SENDER=nome.cognome@dominio.tld
RCVR=/path/to/mail/receiver
SMTP=smtpout.secureserver.net
PSWD=tuapass
TXT=/path/to/mail/text
#Codice
for i in `cat $RCVR`;
do echo "invio mail a $i"; $SND -f $SENDER -t $i -u Company Presentation B -s $SMTP -xu $SENDER -xp $PSWD -o message-file=$TXT;
done
spero di averti dato un aiuto.
ciao
ti faccio un esempio di quello che puo' essere uno script; prendilo con le molle perche' lo faccio senza controllare tutto e dopo 7 ore di lavoro notturno...
#!/bin/bash
#Variabili
SND=`which sendmail`
SENDER=nome.cognome@dominio.tld
RCVR=/path/to/mail/receiver
SMTP=smtpout.secureserver.net
PSWD=tuapass
TXT=/path/to/mail/text
#Codice
for i in `cat $RCVR`;
do echo "invio mail a $i"; $SND -f $SENDER -t $i -u Company Presentation B -s $SMTP -xu $SENDER -xp $PSWD -o message-file=$TXT;
done
spero di averti dato un aiuto.
ciao
Ma così non invia soltanto un'email?
Quello che non riesco a capire è come fare in modo che di volta in volta lo script utilizzi ciascun indirizzo, leggendo la prima riga ed eseguendo il comando sendemail inserendovi l'indirizzo della prima, poi legga la seconda ed inserisca l'indirizzo della seconda nel comando sendemail e così via fino alla fine del documento.
Ho provato con il comando cat ma gli indirizzi vengono listati tutti insieme e non riga per riga, mentre con il comando read semplicemente non succede nulla. Detto questo non saprei, una volta visualizzato il testo, come dire allo script di copiarlo riga per riga.
Insomma per farla breve brancolo nel buio :muro: :muro: :muro:
eclissi83
09-08-2010, 13:08
guarda, io non ho provato a inviare le mail, ma ho fatto un echo dei comandi che vengono eseguiti nel ciclo for (quello che ti prende il singolo elemento all'interno del file con gli indirizzi mail).
bash-4.1$ cat rcvr.txt
alfredo@dominio.it
bla@blabla.it
sbrrr@sbrrr.it
antani@antani.it
bash-4.1$ sh inviamail.sh
invio mail a alfredo@dominio.it
sendmail -f nome.cognome@dominio.tld -t alfredo@dominio.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a bla@blabla.it
sendmail -f nome.cognome@dominio.tld -t bla@blabla.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a sbrrr@sbrrr.it
sendmail -f nome.cognome@dominio.tld -t sbrrr@sbrrr.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a antani@antani.it
sendmail -f nome.cognome@dominio.tld -t antani@antani.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
bash-4.1$
penso che funzioni, no?
ciao
guarda, io non ho provato a inviare le mail, ma ho fatto un echo dei comandi che vengono eseguiti nel ciclo for (quello che ti prende il singolo elemento all'interno del file con gli indirizzi mail).
bash-4.1$ cat rcvr.txt
alfredo@dominio.it
bla@blabla.it
sbrrr@sbrrr.it
antani@antani.it
bash-4.1$ sh inviamail.sh
invio mail a alfredo@dominio.it
sendmail -f nome.cognome@dominio.tld -t alfredo@dominio.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a bla@blabla.it
sendmail -f nome.cognome@dominio.tld -t bla@blabla.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a sbrrr@sbrrr.it
sendmail -f nome.cognome@dominio.tld -t sbrrr@sbrrr.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
invio mail a antani@antani.it
sendmail -f nome.cognome@dominio.tld -t antani@antani.it -u Company Presentation B -s smtpout.secureserver.net -xu nome.cognome@dominio.tld -xp tuapass -o message-file=/home/bisco/text.txt
bash-4.1$
penso che funzioni, no?
ciao
GIA! :D :D :D
Grazie infinite mi hai salvato il c**o!
Sei un grande!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.