Najłatwiejszym sposobem wysłania pliku pocztą e-mail za pomocą wiersza polecenia w * nix?

10

Jakie jest najłatwiejsze - i najlepiej przenośne - polecenie, którego mogę użyć, aby wysłać pojedynczy plik e-mail jako załącznik do powłoki * nix?

Yuval A.
źródło

Odpowiedzi:

11

Zakładając, że jest to załącznik binarny:

uuencode [nazwa pliku] [nazwa pliku] | mail -s [temat] [adres odbiorcy]

Nie musisz zawracać sobie głowy kodowaniem UUencoding, jeśli jest to tylko plik tekstowy, np .:

mail -s [temat] [adres odbiorcy] <[nazwa pliku]

Większość * NIXów ma pocztę i kod uuencode, więc powinno działać prawie wszędzie.

RainyRat
źródło
Co powiesz na to, że chcę plik tekstowy jako załącznik, a nie w treści wiadomości?
Yuval A
To zależy - nie sądzę, że zwykła poczta GNU może to zrobić, więc musisz użyć rzeczywistego klienta pocztowego; sosna, kundel lub coś podobnego. Które z nich są dostępne, zależy od zainstalowanych systemów. Przy użyciu mutta odpowiedź Gavina (poniżej) będzie działać dobrze.
RainyRat
Sosna jest dobra! Czy mogę z niego korzystać za pomocą wiersza poleceń i tekstowego interfejsu GUI?
Yuval A
Myślę, że to jest możliwe. Więcej informacji znajdziesz na stronie staff.washington.edu/chappa/pine/info/outgoing.html .
RainyRat
11

Korzystając z mutta, możesz:

mutt -z -a <file> -s <subject> -- [email protected]

Lub, jeśli nie chcesz wpisywać treści:

mutt -z -a <file> -s <subject> -- [email protected] < /dev/null

Gavin McTaggart
źródło
mutt nie jest dostępny w moich systemach, dzięki i tak
Yuval A
Myślę, że przekonasz się, że będzie to podrzucenie między tym, co łatwe, a tym, co przenośne. mailx jest przenośny, ale niekoniecznie łatwy. Jak wspomina RainyRat, myślę, że będziesz musiał przejść z pełnym MUA i uruchomić go z wiersza poleceń.
Gavin McTaggart
2
Musiałem dodać --przed adresem e-mail, aby te polecenia działały.
Autumnsault
W rzeczywistości potrzebne są myślniki, aby oddzielić adres e-mail od nazw plików „- uż[email protected]”, @DoctorMohawk jest poprawny. Próba dodania ich powyżej do treści odpowiedzi.
Jeff Clayton
2

sendEmail to lekki klient poczty e-mail SMTP z linii poleceń. Jeśli musisz wysyłać wiadomości e-mail z wiersza poleceń, ten darmowy program jest idealny: prosty w obsłudze i bogaty w funkcje. Został zaprojektowany do użycia w skryptach bash, plikach wsadowych , Programy i witryny Perla, ale można je łatwo dostosować i prawdopodobnie spełnią twoje wymagania. SendEmail jest napisany w Perlu i jest wyjątkowy, ponieważ nie wymaga ŻADNYCH MODUŁÓW. Posiada intuicyjny i elastyczny zestaw opcji wiersza poleceń, dzięki czemu jest bardzo łatwy do nauki i używania. [Obsługiwane platformy: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000 i Windows XP] ”

Używałem go wcześniej i bardzo mi się podobało. Możesz załączyć pliki z opcją -a.

Clinton Blackmore
źródło
+1 - To było idealne do tego, czego potrzebuję, ponieważ jest łatwe i nadal aktywnie utrzymywane! Jeśli korzystasz z systemu Debian, możesz po prostu aptitude install sendemail. Zauważ, że polecenie jest instalowane jak sendEmailz wielką literą „E”.
Topher Fangio,
W rzeczywistości plik tarball zawiera skrypt perla i kilka dokumentów. Możesz go po prostu pobrać, rozpakować i uruchomić (pod warunkiem, że Twój system ma Perla). Cieszę się, że ci się podoba.
Clinton Blackmore,
1

Nie mogę dodać komentarza, ale ..

  • Odpowiedzi na to będą bardzo zależeć od tego, od której, jeśli w ogóle, mailxtwojej pochodnej masz dostępne.
  • Chociaż plik powinien być wyświetlany bez żadnych problemów przez odbierającego MUA, potokowanie z uuencodetechnicznie nie wygeneruje wiadomości e-mail z załącznikiem. Sprawdź źródło otrzymanego e-maila, aby dowiedzieć się, dlaczego.
Dan Carley
źródło
+1 za prawdę. Nawet nie zdawałem sobie sprawy, że istnieje wersja mailx, która może wysyłać załączniki (moje na pewno nie). Masz również rację co do ręcznego kodowania uud wymaganego z uuencode -> potokiem poczty.
Gavin McTaggart
1

Jeśli chcesz mieć absolutną przenośność, możesz telnet na swój serwer pocztowy na porcie 25 i wydawać polecenia SMTP bezpośrednio. Nie są zbyt trudne i powinny być bardzo skryptowalne.

Maximus Minimus
źródło
3
Możesz także napisać własny serwer SMTP.
słuchaj
1

Szybkie Google wyświetliło tę stronę , która opisuje różne sposoby dołączania plików za pomocą różnych aplikacji. Kilka bardziej rozpowszechnionych -

  • uuenc8de, aby utworzyć wbudowany „załącznik”.

  • metamail -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • błazen -a file-to-attach

  • Wiąz -A file-to-attach

Dodatkowo zawiera łącza do kilku skryptów powłoki i skryptu Perla do tworzenia i wysyłania wiadomości, co prawdopodobnie bardziej Ci się spodoba.

słuchać uważnie
źródło
1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt [email protected]
Neobajt
źródło
mail: nielegalna opcja - a
Yuval A
1
zauważ, że jest to funkcja mailx, upewnij się, że konkretny pakiet jest zainstalowany
niXar
0

Kilka lat temu napisałem skrypt powłoki, który właśnie to zrobił. Nazywał się binmail.sh. Wykorzystał koder base64 (wiele kodów źródłowych można znaleźć w google ) i zbudował załączniki zgodnie z RFC1521 .

mouviciel
źródło