W jaki sposób poczta jest faktycznie wysyłana, gdy korzystam z polecenia „mail” systemu Linux?

17

Jakie konto e-mail służy do wysyłania wiadomości e-mail podczas korzystania z mailpolecenia z terminala linux, jak w:

echo "Body of email" | mail -s "Subject" [email protected]

Jeśli e-maile nie są wysyłane, czy trzeba podać nazwę użytkownika i hasło do wysyłającego adresu e-mail? Wszystkie mailsamouczki, które przeczytałem, nie zawierają żadnych informacji na temat adresu nadawcy.

Edycja: Więc jeśli otrzymam komunikat o błędzie z informacją, że „Mailing do domen zdalnych nie jest obsługiwany”, czy to oznacza, że ​​mój dostawca usług internetowych zablokował wysyłanie wiadomości e-mail? Czy jest na to jakiś sposób? Dzięki.

użytkownik001
źródło

Odpowiedzi:

12

Jakie konto e-mail służy do wysyłania wiadomości e-mail podczas korzystania z polecenia mail z terminala linux, jak w:

W domyślnych konfiguracjach jest to to samo konto, którego użyłeś do zalogowania. Na Twoim komputerze jest zainstalowany program serwera poczty (MTA); zazwyczaj Postfix lub Exim4, czasem Sendmail lub qmail.

Adres e-mail tego konta to lub , pod którym można uzyskać nazwę FQDN . Jednak w tej chwili nie można odbierać poczty na to konto, ponieważ MTA jest skonfigurowany na „tylko pocztę lokalną” (jak mówi poniższy komunikat o błędzie) i nie przyjmuje wiadomości z zewnątrz.your-login@hostnameyour-login@fqdnhostname -f

Edycja: Więc jeśli otrzymam komunikat o błędzie z informacją, że „Mailing do domen zdalnych nie jest obsługiwany”, czy to oznacza, że ​​mój dostawca usług internetowych zablokował wysyłanie wiadomości e-mail? Czy jest na to jakiś sposób?

Nie; ten komunikat o błędzie jest zwracany przez twój komputer. Serwer pocztowy jest skonfigurowany tak, aby przesyłać tylko pocztę lokalną - od jednego użytkownika do drugiego (najczęściej z demona cron, jeśli nie powiedzie się cronjob). Zazwyczaj te komunikaty mają i są czytelne przy użyciu , , lub podobne programy. (IIRC, Thunderbird miał również możliwość importowania lokalnych buforów poczty)./var/mail/loginmailmuttre-alpine

Ponowna konfiguracja serwera pocztowego do wysyłania i odbierania poczty do / z innych stron nie jest trudna; w zależności od zainstalowanego MTA i dystrybucji Linuksa, może wystarczyć nawet jedno polecenie: na przykład, dpkg-reconfigure postfixjeśli system to Debian z Postfix.

Wydaje mi się jednak, że używasz tego na komputerze osobistym, więc lepiej byłoby użyć zewnętrznego konta pocztowego - na przykład adresu Gmaila, jeśli go masz. Dowiedz się, która MTA jest zainstalowana ( dpkg -S /usr/sbin/sendmailpowiedzą Ci Ubuntu / Debian ), a następnie google, aby znaleźć „ program-name relay gmail” samouczek.

Alternatywnie zainstaluj MTA specjalnie zaprojektowany do przekazywania; msmtpi esmtpsą dobrym wyborem i łatwe do skonfigurowania.

użytkownik1686
źródło
Dzięki za wszelką pomoc. Polecenie pastebin, które zasugerowałeś, ostatecznie spełniło moje potrzeby. Będę pracował nad skonfigurowaniem smarthosta do przekazywania poczty.
user001
4

Na przykład jest to nazwa konta i nazwa hosta wysyłającego użytkownika root@myserver. To niekoniecznie faktyczna skrzynka pocztowa, która może odbierać wiadomości e-mail z zewnątrz.

Daniel Beck
źródło
2
@ user001 Czy to pomaga?
Daniel Beck
2
@ user001: W takich przypadkach możesz rzucić okiem na pastebiny , z których niektóre są łatwe w użyciu z wiersza poleceń. Na przykład curl -Fsprunge=\<- http://sprunge.us < myfile.
user1686,
1
@ user001: Czy masz exim4uruchomionego demona? Czy sudo mailqwyświetla wiadomość? Czy sprawdziłeś dzienniki serwera wysyłającego ( /var/log/exim4/mainlog) i odbiorcy (jeśli to możliwe)?
user1686,
1
@ user001: Możliwe, że Twój dostawca usług internetowych blokuje połączenie. Jest to szczególnie powszechne w przypadku połączeń domowych - wszystko do portu 25 jest po prostu upuszczane, aby zmniejszyć ogromne ilości spamu wysyłanego przez zainfekowane komputery. (Nadal można jednak skonfigurować przekazywanie , które wykorzystuje inny port i uwierzytelnianie SMTP.)
1686
1
@ user001: Przekazywanie odbywa się za pośrednictwem innego serwera poczty (czasami nazywanego „smarthost”). Administratorzy sieci mogą w tym pomóc, jeśli akademia ma własną domenę pocztową. Jeśli nie, możesz skonfigurować serwer do wysyłania z Gmaila lub podobnej skrzynki pocztowej; tutoriale tutaj .
user1686,
4

Polecenie mail wysyła wiadomości e-mail w ramach bieżącego konta, tj. Nazwa użytkownika @ domena; jednak zwykle dostawcy usług internetowych uniemożliwiają użytkownikom uruchamianie własnych serwerów pocztowych (poprzez blokowanie odpowiednich portów) w celu uniknięcia spamu, dlatego wiadomość e-mail nie jest wysyłana.

Ale problem z wysyłaniem może być również związany z konfiguracją komputera.

Edycja: umożliwianie wysyłania wiadomości e-mail z np. Gmaila. Umieść następujące informacje w pliku ~ / .mailrc, który zapewnia podstawową konfigurację poczty. Upewnij się jednak, że ten plik jest dostępny tylko dla Ciebie (przy użyciu chmod 600 ~ / .mailrc)

account gmail {
set smtp-use-starttls
set ssl-verify=ignore
set smtp=smtp.gmail.com:587
#set smtp-auth=login
set [email protected]
set smtp-auth-password=pass
set [email protected]
}

W takim przypadku wiadomość e-mail będzie pochodzić z „[email protected]”.

Karolos
źródło
@ user001: Czy chcesz po prostu wysyłać wiadomości e-mail (np. ze skryptów), czy też je odbierać?
Karolos,
Aby móc wysłać wiadomość ze skryptu. Dzięki.
user001
2
Zauważ, że ta mailrcskładnia jest specyficzna dla heirloom-mailx. Niektóre systemy mogą być wyposażone w GNU mailutilslub BSD mailx, które narzekają na błędy składniowe. (Jeśli tak się stanie, sugeruję instalację heirloom-mailx- lub nawet lepszą, muttlub re-alpine.)
user1686 31.01.12