#2 Jak wysłać email z Linuxa, używając serwera SMTP z GMAILIA

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.
mojekonto gmail

Teraz klikamy w blok hasła aplikacji
logowanie_w_google

Wybieramy inne i podajemy nazwę malix, po czym klikamy wygeneruj.
wygenerowane_haslo_do_google smtp
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
icm.sh

  • -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
mail.conf

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 🙂

email z linuxa

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

One thought on “#2 Jak wysłać email z Linuxa, używając serwera SMTP z GMAILIA

  1. Stefan

    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.

    Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.