Witam,
mam taki problem, potrzebuje wysyłać automatyczne wiadomości cyklicznie poprzez skrypt bash. Doszedłem do tego jakim skryptem wysłać + dołaczyć załącznik ale nie mogę poradzić sobie jak tekst z załącznika wstawić w treść e-maila i jak go tam sformatować
nie lepiej skrypt np. pythona a .sh tylko do odpalania pythona w cronie?
wysyłam już cyklicznie kilka wiadomości za pomocą basha dlatego tutaj szukam. Jesteś w stanie pomóc?
sdurzyns napisał(a):
Witam,
mam taki problem, potrzebuje wysyłać automatyczne wiadomości cyklicznie poprzez skrypt bash. Doszedłem do tego jakim skryptem wysłać + dołaczyć załącznik ale nie mogę poradzić sobie jak tekst z załącznika wstawić w treść e-maila i jak go tam sformatować
Jakiego załącznika?
.txt
sdurzyns napisał(a):
.txt
Możesz skorzystać z jednego z moich skryptów (używa mutta do wysyłania maili) - tam do treści dorzuca zawartość pliku exe:
mutt -H - "$MAIL_FROM" <<EOF
From: backup skrypt
To: $MAIL_TO
Subject: UWAGA: Błąd podczas weryfikacji archiwum z SERWERÓW: $file
Katalog: $BACKUP_DIR
Do sprawdzenia log:
$(cat file.txt)
EOF
Jeżeli korzystasz z mailutils, czyli masz polecenie mail - w zasadzie podobnie:
cat file.txt | mail -s Subject [email protected]
Ogólnie można to zrobić na milion sposób, więc polecam poeksperymentować, z mailutils lub z muttem (i podobnymi).
Super. Dzięki za przykład. Zobaczę czy coś z tego wyłuskam
Teoretycznie samą treść już dałem radę dorzucić tylko w treści maila nie wyglądało to estetycznie... Pytanie czy jest jakiś sposób na obróbkę tego w bashu. Słowa w pliku test.txt oddzielam za pomocą np. separatora /
W załączniku podsyłam screen maila w celu zobrazowania o co mi chodzi. Jak widać sama treść wymaga formatowania bo mało czytelna jest. Pytanie jak można to zrobić, pomożecie?
Większość fontów ma znaki różnych wielkości (w
jest zwyczajowo szersze niż i
, na przykład); istnieje jednak pewien zbiór fontów - monospace (np. Courier New
) - gdzie wszystkie znaki mają identyczną szerokość.
Tak więc musiałbyś w swoim mailu albo zmienić font wszystkiego na jakiś monospace, albo wrzucić tanten fragment w znacznik pre (wtedy przeglądarka sama dobierze odpowiedni font).
na tą chwilę nie bardzo wiem jak to zrobić. Masz może na to jakiś przykład?
https://stackoverflow.com/questions/3317174/sending-html-mail-using-a-shell-script + owiń swój tekst w <pre>RDC_FOOD | RDC_...</pre>
.
sdurzyns napisał(a):
na tą chwilę nie bardzo wiem jak to zrobić. Masz może na to jakiś przykład?
Masz zazwyczaj 2 sposoby wysłania treści wiadomości w mailu:
-
Zwykły tekst, teraz kwestia tego, jak on wygląda, zależy od czcionki używanej przez czytającego maila - nie możesz tego wymusić. W twoim przypadku pewnie chodzi Ci o to, aby tabelka się nie rozłaziła - nie będzie, jeśli została poprawnie zrobiona
w czcionce o stałej szerokości (mono w nazwie) - znaczy się ona na takiej wygląda "poprawnie" + zostanie odczytana za pomocą takiej czcionki -
Możesz użyć wiadomości w html do sformatowania tabel - choć dawniej nie było to wskazane by przesyłać maile w htmlu, ale obecnie to raczej wszędobylskie i każdy klient to obsłuży (chyba, że klient w konsoli - tutaj należy uważać). Tak samo jak w pkt 1) nie możesz wymusić aby czytający e-mail otwierał ją w htmlu, może mieć taką opcje wyłączoną, albo niektóre klienty mogą ze względów bezpieczeństwa blokować niektóre znaczniki (tabele nie powinny do nich należeć)
- Można generować tabelkę... w pliku graficznym i wysłać taki plik - wtedy będzie wygląda zawsze tak jak to sobie zaplanowałeś. Problem w tym, że plik graficzny jest cięższy od tekstu, do tego ciężej się na nim bawić (typu przeklejać ścieżki czy w ogóle tekst)
Podsumowując większość spraw zależy od tego, kto i jakim programem będzie czytał te maile.