PDA

View Full Version : Script per mailserver


mrandre
19-11-2010, 12:58
Mi vedo dopo mesi a dover mettere mano di nuovo su di uno script che, grazie all'aiuto di alcuni utenti di HWUpgrade, ero riuscito a far funzionare.
Premetto che di scripting ne so davvero poco, quel poco che mi ha permesso di far funzionare tale script, salvarlo e farlo eseguire in automatico per inviare le email aziendali al nostro elenco clienti.
Poi un giorno venne una terribile tempesta, il computer si bruciò e lo script andò perduto in un'esplosione di byte dalla quale nulla di quel vecchio portatile si salvò.

Lo script si limita a leggere un documento di testo sul quale ho salvato, riga per riga, gli indirizzi email dei nostri clienti; salva l'indirizzo in una variabile e la inserisce nel comando "sendmail".
Quando ha finito passa all'indirizzo successivo e così via fino all'ultimo.

Ora sto cercando di riscrivere quel .sh che mi è tornato tanto comodo in passato, ma bash continua a dirmi che ho commesso un errore di sintassi (unexpected end of file, linea 13) e non riesco a spiegarmi il perchè.

#!bin/bash
#Variabili
SND=sendemail
SMTP=smtpout.secureserver.net
RCVR=/home/andrea/Desktop/mailer/list.txt
[email protected]
PSWD=*********
TXT=/home/andrea/Desktop/mailer/body.txt
#Codice
for i in "cat $RCVR"
do echo "Email inviata a $i" ; $SND -f $SNDR -t $i -u Company Presentation -s $SMTP -xu $SNDR -xp $PSWD -o message-file=$TXT;
done
echo "Fine"

Gimli[2BV!2B]
19-11-2010, 20:23
Scusa, ma non è questo? (http://www.hwupgrade.it/forum/showthread.php?t=2231244)

Quello che hai scritto contiene doppi apici al posto di apici singoli, sendemail non esiste, ecc...

mrandre
20-11-2010, 17:47
;33700961']Scusa, ma non è questo? (http://www.hwupgrade.it/forum/showthread.php?t=2231244)

Lo so...evito di postare senza aver guardato il vecchio topic!

Per tagliare la testa al toro ho copiato il codice tale quale quello che c'era nel vecchio topic, ho cambiato i valori delle variabili e incrociato le dita...

Ora ottengo un altro messaggio di errore:

andrea@andrea-netbook:~/Desktop/mailer$ bash mailsender.sh
'ailsender.sh: line 10: syntax error near unexpected token `
'ailsender.sh: line 10: `for i in `cat $RCVR`;


Codice:

#!/bin/bash
#Variabili
SND=`which sendmail`
[email protected]
RCVR=/home/andrea/Desktop/mailer/list.txt
SMTP=smtpout.secureserver.net
PSWD=########
TXT=/home/andrea/Desktop/mailer/body.txt
#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

Gimli[2BV!2B]
20-11-2010, 18:17
Dall'errore direi che c'è un apice prima del for... cosa assente dal codice che riporti...

Via gli apici che sò brutti!#!/bin/sh

#Variabili
SND=$(which sendmail)
[email protected]
RCVR=/home/andrea/Desktop/mailer/list.txt
SMTP=smtpout.secureserver.net
PSWD=########
TXT=/home/andrea/Desktop/mailer/body.txt

#Codice
EMAILS=$(cat $RCVR)
for address in $EMAILS;
do echo "invio mail a $address"; $SND -f $SENDER -t $address -u Company Presentation B -s $SMTP -xu $SENDER -xp $PSWD -o message-file=$TXT;
done

mrandre
21-11-2010, 12:51
Grazie delle dritte.
Ora lo script è tornato a fare il suo dovere :) .
Un po off topic, ma mi consiglieresti un buon sito dove trovare informazioni a riguardo della punteggiatura e della sintassi corretta per bash?
nelle guide che ho sfogliato si trova una valanga di informazioni e istruzioni anche troppo particolari per l'uso che farei dello scripting, mentre per quanto riguarda la sintassi non riesco a trovare in un colpo solo una guida, ma solo informazioni sparse qua e là.
E cosi sono sempre costretto a rompere le scatole sui forum...:muro:

Gimli[2BV!2B]
21-11-2010, 14:09
Io ho spesso utilizzato documentazioni (http://www.google.com/cse?cx=017644269519104757279:gm62gtzaoky&q=bash&sa=go) presenti in The Linux Documentation Project (http://tldp.org/) e altre risorse per specifici argomenti.
Questi sono i link principali che ricordo:
Bash Guide for Beginners (http://tldp.org/LDP/Bash-Beginners-Guide/html/)
Advanced Bash-Scripting Guide (http://tldp.org/LDP/abs/html/) (presente anche in italiano, però meno aggiornata (http://www.pluto.it/files/ildp/guide/abs/index.html))
Appunti di informatica libera, parte xxvi. (http://a2.pluto.it/a2187.htm#almltitle1129)