W tym wpisie zaprezentuje, jak w prosty sposób można wysłać email z Linuxa używając tylko konsoli, wykorzystując serwer SMTP Gmail. A do tego, rozbudować to o skrypt do powiadamiania znajomych w razie braku powrotu z wyprawy( godzina zero).
1.Instalacja potrzebnego oprogramowania
pacman -S malix
mkdir ice && cd ice
# certy dla ssl'a
pacman -S ca-certificates-utils openssl ca-certificates
2.Wygenerowanie hasła do aplikacji GMAIL
Weryfikacja dwu etapowa wymusza na nas utworzenie specjalnego hasła dla aplikacji. więc:
Gdy jesteś zalogowani do konto, klikamy prawy górny róg w nasz avatar( zdjęcie naszej mordy) i klikamy Moje Konto( niebieskie ). Powinna nam sie objawić taka plansza jak poniżej, klikamy na niej w link Logowanie w Google.
Teraz klikamy w blok hasła aplikacji
Wybieramy inne i podajemy nazwę malix, po czym klikamy wygeneruj.
kopiujemy hasełko 🙂 ( tu nima spacji), będzie potrzebne do dalszej zabawy 🙂
3. Wysłanie maila z konsoli
#
#
echo -e " treść wiadomości email " | mailx -v -s "Temat Email" -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=smtp://smtp.gmail.com:587 -S from="wpisz_tu_swoj_adres_gmail@gmail.com( Uszatek BLOG IT)" -S smtp-auth-user=wpisz_tu_swoj_login_gmaill -S smtp-auth-password=wpisz_tu_wyge_haslo -S ssl-verify=ignore -S ilovespam@uchacz.it
wpisz_tu_wyge_haslo – zmieniamy te miejsce na twóje wygenerowane hasełko z googla.
wpisz_tu_swoj_login_gmaill – zmieniamy na twój login ( to przed @ ).
wpisz_tu_swoj_adres_gmail@gmail.com – podmieniamy na twój adres gmail.
4. Skrypt ICE – alarmujący, że nie wróciliśmy na czas z wyprawy
Szczególnie przydatne dla samotnych podróżników, żeby nie skończyć jak główny bohater z filmu 127 godzin . Skrypt ma powiadamiać świat, jeśli na czas go nie wyłączymy( godzina zero).
4.1 icm.sh
Główny skrypt(przez niego wysyłamy email z Linuxa):
#!/bin/bash
usage() { echo 'Usage: -t "HELP ME" -c "i am in journal.." -e ilovespam@uchacz.it -e spammemoreplz@uchacz.it -d 2017-05-05-11:00'; }
# reading config file
source mail.conf
#udate ca
#pacman -S ca-certificates
while getopts "e:d:t:c:h:g" options;
do
case $options in
h)
usage
;;
e)
emails+=$OPTARG' '
;;
d)
date=$OPTARG
;;
t)
topic=$OPTARG
;;
c)
con=$OPTARG
;;
g)
gsm+=$OPTARG' '
;;
*)
usage
exit 1
;;
esac
done
shift $(( $OPTIND - 1 ))
### CHECK ###
if [ ! "$topic" ]
then
echo " brak Tematu !"
usage
exit 1
fi
if [ ! "$emails" ]
then
echo " brak emailu"
usage
exit 1
fi
if [ ! "$con" ]
then
echo " brak Tresci"
usage
exit 1
fi
#################
### MAIN LOOP ###
#################
while true
do
now=$(date +"%Y-%m-%d-%H:%M")
echo -e $now'\n'
if [[ $date < $now ]];
then
############
## EMAILS ##
############
for e in $emails
do
echo $e
echo -e "$con" | mailx -v -s "$topic" -S smtp-use-starttls -S ssl-verify=ignore -S smtp-auth=login -S smtp=$smtp -S from="$email( USZATEK BLOG IT)" -S smtp-auth-user="$login" -S smtp-auth-password="$pass" -S ssl-verify=ignore $e
done
#########
## GSM ##
#########
if [ ! "$gsm" ]
then
for g in $gsm
do
/usr/sbin/semdsms /dev/ttyUSB2 $g $con
done
fi
exit 1;
fi
done
- -d – data ( godzina zero )
- -e – adres email, na który ma zostac wysłana wiadomość
- -t – temat wiadomości
- -c – treść wiadomości
- -g – opcja jeśli mamy modem GSM , wysyłamy też smsy
4.2 mail.conf
W tym pliku znajdują się dane do twojego konta googla:
login="twojlogin"
pass="tutaj_wyge_haslo_z_googla"
email="twoj_adre_email@gmail.com"
smtp=smtp://smtp.gmail.com:587
4.3 Let’s make magic 🙂 – czyli wysyłamy email z Linuxa
# za pomoca screena
screen -S icm
./icm.sh -t "Wypada-JURA-Wszystkich swietych " -e ilovespam@uchacz.it -e spammemoreplz@gmail.com -c "Minęła właśnie godzina zero, a jeszcze nie wróciłem z wyprawy do jaskini wszystkich świętych - Jura. Spróbuj się najpierw, ze mną skontaktować, jak nie odbiorę dzwon od razu po ratowników !!!!" -d 2017-03-30-13:37
# Ctrl + A + D
# aby wyłączyć
screen -r icm
# Ctrl+C
# za pomoca deamona
setsid ./icm.sh -t "Wypada-JURA-Wszystkich swietych " -e ilovespam@uchacz.it -e spammemoreplz@gmail.com -c "Minęła właśnie godzina zero, a jeszcze nie wróciłem z wyprawy do jaskini wszystkich świętych - Jura. Spróbuj się najpierw, ze mną skontaktować, jak nie odbiorę dzwon od razu po ratowników !!!!" -d 2017-03-30-13:37
>/dev/null 2>&1 < /dev/null &
# aby wyłączyć
pkill -f icm
5. GitHub clone & run 🙂
mkdir icm && cd icm
git clone https://github.com/leszekuchacz/2-blog_uszatek-email_z_linuxa.git
# change mail.conf for your account & run 🙂
chmod +x icm.sh
./icm.sh -t "hej pomocy 🙁 " -e ilovespam@uchacz.it -c " Nie mogę wyjść z ubikacji 🙁 " -d 2017-04-01-08:24
Kiedyś ustawiałem Exima aby korzystał z serwerów SMTP Gmail jako smarthosta, wtedy można wysyłać maile z palca bez kombinowania z autoryzacja.