Skicka ett mail via telnet (2 / 3 steg)
Steg 2: Automatisera brevsändning
Så för att automatisera alla steg som vi har gjort förut, jag har letat efter på nätet, något som skulle tillåta mig att göra detta, orsaka bash tillåter inte något sådant.
Och jag har äntligen hitta något som liknar bash, de kan förvänta sig!
I grund och botten väntar det en sträng som ska skrivas ut på terminalen. Och endast när den här strängen tas emot, skriver en annan.
Till exempel när du startar telnet kommunikationen med google servern svara dig en sträng som slutar med "SMTPUTF8", och när denna sträng är skriven i terminalen, skall skriptet skicka svaret HELO
Jag inbjuder dig att kontrollera alla previouses steg, som du kan se för varje sträng du skickar till servern finns det ett svar.
Jag har grunda mitt manus på detta.
Här är hur jag gjorde det, jag har skapa ett bash-skript som skall hämta min offentliga IP-adressen och status för alla min server och skicka det till en sträng som ett argument till mitt förvänta manus.
Först bash script att ringa min förvänta skript (det är en light-version bara för till exempel)
Jag har ladda upp båda skripten.
___________________________________BASH SCRIPT________________________________
#! / bin/bash
#This linje är här ska jag använda crontab senare
Stig = / usr/local/sbin: / usr/local/bin: / usr/sbin: / usr/bin: / sbin: / bin: / usr/spel: / usr/local/spel
ECHO "Récupération de l'adresse ip publique"
curl ifconfig.me > ipPublic.txt
IP = "IpPublic ="
IP-+= $(cat ipPublic.txt) PLEX = ""
ECHO "IP publique maison:" $IP
Service--status-all | grep plex > tmp.txt
om [[-s tmp.txt]]; sedan
PLEX = "PlexStatus = löpning"
ECHO $PLEX
annat
PLEX = "PlexStatus = Stoppé"
ECHO $PLEX
Fi
RM tmp.txt
ECHO "Envoi du mail..."
/Home/diard/Téléchargements/telnetScript.exp $IP $PLEX
ECHO "Skriptet terminé"
________________________________END OF BASH SCRIPT_____________________________
Och där är det skriptet förvänta. Skriptet jag bara visade dig, kallar follo med Ip och status för min server.
___________________________________EXPECT SCRIPT_______________________________
#! / usr/bin/förvänta
ställa in HELO "HELO yo"
Ange SMTP "smtp.gmail.com"
Set PORT "587"
ställa in AUTH "AUTH LOGIN"
ställa in LOGI "< yourEncodedMail >"
inställda PASS "< yourEncodedPass >"
Ange erfarenhet "MAIL från: < yourMail > "
Ange DEST "RCPT TO: < DestMail > "
Ange DATA "DATA"
Ange Momspliktiga "ämne: Server info"
Ange MES1 [lindex $argv 0]
Ange MES2 [lindex $argv 1]
ställa in POIN "."
Ange QUIT "Avsluta"
ställa in timeout 10
leka /usr/bin/openssl s_client - starttls smtp-Anslut $SMTP: $PORT - crlf-ign_eof
förvänta dig "SMTPUTF8"
Skicka "$HELO\r"
räkna med "service"
Skicka "$AUTH\r"
förvänta dig "WU6"
Skicka "$LOGI\r"
förvänta dig "mQ6"
Skicka "$PASS\r"
förvänta dig "Accepterade"
Skicka "$EXPE\r"
förvänta dig "gsmtp"
Skicka "$DEST\r"
förvänta dig "gsmtp"
Skicka "$DATA\r"
förvänta dig "gsmtp"
Skicka "$SUBJ\r"
Skicka "$MES1\r"
Skicka "$MES2\r"
Skicka "$POIN\r"
förvänta dig "qsmtp"
Skicka "$QUIT\r"
Stäng
förvänta sig eof exit
___END AV FÖRVÄNTAR SIG SCRIPT___