Jak wysłać wiadomość e-mail z załącznikiem postfiksem z wiersza polecenia?

10

Właśnie skonfigurowałem dla siebie nowy serwer Ubuntu 10.04 LTS na linode. Wykonano doskonałą instrukcję na: tutaj, aby zakończyć instalację kilku podstawowych rzeczy, w tym postfix.

Próbuję znaleźć sposób na wysłanie wiadomości e-mail na mój adres Gmail z załącznikiem, ale nie mogę znaleźć sposobu. Już potwierdziłem, że e-mail może dotrzeć do mojego konta Gmail.

W końcu muszę użyć mutt do wysłania wiadomości e-mail z załącznikami, prawdopodobnie SendEmails również da sobie radę, ale zastanawiam się, jak zrobić to samo w Postfiksie z wiersza poleceń?

Z góry dziękuję za to głupie pytanie.

Michael Mao
źródło

Odpowiedzi:

14

Dlaczego to musi być postfixbezpośrednio? mailx -a, muttlub mutt -aużyje również sendmailinterfejsu - chyba że skonfigurujesz je dla SMTP.

echo „To jest wiadomość testowa” | mutt -s Test -a foo.zip - USER $
echo „To jest wiadomość testowa” | mail -s Test -a foo.zip $ USER

(Uwaga: w bsd-mailx opcja jest -Azamiast tego.)


Tak czy inaczej, oto przykład „Postfix”.

Zamień $USER, typ zawartości i nazwę pliku pasujące do twojego środowiska. Przykład zakłada, że ​​wysyłasz wiadomość do siebie i masz plik ZIP foo.zipw bieżącym katalogu.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Tworzenie wiadomości wieloczęściowych MIME pozostawionych jako ćwiczenie dla czytelnika).

użytkownik1686
źródło
mail -a foo.zipnie dołącza się foo.zipdo wiadomości jak w przypadku mutt.
nr
@ nicolai.rostov: chyba zależy mail. Odbywa się to w heirloom-mailx.
user1686,
7

Postfix to agent przesyłania poczty (MTA) . Jego zadaniem jest obsługa dostarczania poczty: podnieś ją i wyślij do następnego punktu na trasie. Postfix jest pracownikiem pocztowym, którego zadaniem jest wzięcie koperty i (z pomocą współpracowników) przekazanie jej odbiorcy.

To, o co tu prosisz, to praca sekretarska: gromadzenie dokumentów w celu włożenia ich do koperty. To nie jest praca Postfixa: to praca dla agenta użytkownika poczty (MUA) . Możesz napisać prymitywny MUA, który po prostu składa kawałki, aby utworzyć pocztę w kilku liniach powłoki, podobnie jak grawitacja , ale Mutt jest naprawdę dobrym narzędziem do tego zadania.

Gilles „SO- przestań być zły”
źródło
4

Z wiersza poleceń lubię używać „sendemail”, który na Ubuntu / debian można zainstalować z wiersza poleceń w następujący sposób:

apt-get install sendemail

Następnie możesz po prostu powiedzieć mu, aby używał localhost (Postfix) jako MTA.

Właśnie zauważyłem, że localhost: 25 jest domyślnym:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Następnie dodajesz załączniki, używając flagi -a:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
Docunext
źródło
1

mailx 12.4 ma opcję dołączania plików:

-a plik
    Załącz podany plik do wiadomości.

Na przykład:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
to jest oprogramowanie sosnowe, o które prosiłeś Enter
.Enter
EOT
[gawad @ centos Desktop] $ 
użytkownik228560
źródło