Jak wysłać wiadomość e-mail z serwera Ubuntu?


13

Powinienem wysyłać e-maile z Ubuntu. Najprostszym sposobem, jaki znalazłem, jest użycie Thunderbirda i połączenie mojego prawdziwego adresu e-mail (abc@hotmail.com) z kontem Thunderbird. Mogę z powodzeniem odbierać wiadomości e-mail i pobierać w ten sposób pełną historię. Nie mogę jednak wysyłać wiadomości e-mail.

Chcę wysyłać wiadomości e-mail prosto z Ubuntu i pojawiać się jako user1 @ localhost lub coś podobnego.

Czy to w ogóle jest możliwe? Po przeczytaniu różnych tematów na ten temat wydaje się, że użycie adresu przekaźnika jest jedynym sposobem.

Zainstalowałem również Postfix, tak jak tam napisano: Jak skonfigurować serwer pocztowy? Kiedy poproszono mnie o wybranie typu instalacji, wybrałem stronę internetową.

Opcje, które miałem:

  • Bez konfiguracji;
  • Strona internetowa;
  • Internet z smarthostem;
  • System stellitowy;
  • Tylko lokalnie;

Zapytany o nazwę systemowej poczty, wszedłem na własną stronę internetową: some_website.com. Nadal nie wiem, jak wysyłać wiadomości e-mail po poprawce, ale zakładam, że ponownie zostanie użyty serwer przekaźnikowy.

Używam Ubuntu 11.10 jako maszyny wirtualnej.

Mam nadzieję, że to pytanie ma sens.

Odpowiedzi:


13

Nie ma to żadnego sensu, ponieważ powiedziałeś „powinienem”, tak jakby to była twoja praca. Czy konfigurujesz prawdziwy serwer pocztowy na maszynie wirtualnej? Rozumiem, że oznacza to, że potrzebujesz serwera wirtualnego, aby mieć system pocztowy, ale że serwer wirtualny nie jest pełnoetatowym „prawdziwym” serwerem SMTP. (Inaczej już byś wiedział, jak sądzę dziko.)

Mając to na uwadze, potrzebujesz opcji „Internet z smarthostem”. Zasadniczo głównym powodem jest to, że dobrze skonfigurowane serwery SMTP na całym świecie stosują środki antyspamowe; a wśród tych środków jest odrzucenie wszystkich połączeń SMTP pochodzących ze znanych pul adresów dynamicznych (z których spamerzy lubią korzystać). Dlatego do poczty wychodzącej należy użyć innego serwera SMTP.

Jeśli chcesz trzymać się Postfix, łatwo to zrobić: po prostu wyszukaj artykuły Ubuntu związane z konfigurowaniem Postfix jako smarthost. Jednakże, jeśli nie mają szczególne powinowactwo do jednego systemu na inny, nie jest to pakiet przeznaczony tylko do tego: ssmtp. Tak więc, jeśli chcesz spróbować, po prostu zainstaluj ssmtp.

( Uwaga: poniższe działanie usunie postfiks lub sendmail. )

sudo apt-get install ssmtp

Następnie edytuj plik konfiguracyjny ssmtp:

sudo -e /etc/ssmtp/ssmtp.conf

Nie znam szczegółów dostępnego serwera SMTP, dlatego podam przykład Gmaila:

Root=your_email@gmail.com
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # me@gmail.com
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes

Teraz twój system wyśle ​​pocztę tak, jak chcesz. Możesz użyć localhost jako serwera poczty w aplikacjach GUI dla wychodzącego serwera SMTP. Ale co z CLI? Użyj mailoprogramowania:

sudo apt-get install heirloom-mailx

Teraz możesz także używać poczty z wiersza poleceń, używając czegoś takiego:

mail < filename.ascii someone@somewhere.com -s "My File"

Lub, jeśli używasz maildo redagowania wiadomości, którą wpisujesz ( mail someone@somewhere.com), to zakończ wiadomość pocztową pojedynczą kropką w pustym wierszu. Lepszym klientem poczty CLI jest muttlub pine.

Czy to jest kąt, którego potrzebujesz? Jeśli tak, czy to się udało?


1
Mutt mówi „sendmail: Nie można otworzyć: 25”, gdy próbuję wysłać wiadomość e-mail. ssmtp mówi „ssmtp: nie można otworzyć: 25” Powiedziałem również, że mogę wysyłać e-maile za pośrednictwem Thunderbirda, ale myślę, że się myliłem. Przepraszam za to. Przekroczono limit czasu podczas wysyłania wiadomości e-mail za pośrednictwem Thunderbirda oraz wiadomości o porcie 25 podczas korzystania z klientów poczty CLI.
afaf12

@ afaf12 sprawdź, czy zapora blokuje. Błąd przekroczenia limitu czasu połączenia występuje głównie z powodu problemu z zaporą.
Mughil

1
Czy zdalny serwer pocztowy ogranicza dostęp do niektórych zakresów adresów, przez konfigurację lub zaporę?

Czy na tym zdalnym serwerze pocztowym musisz użyć portu przesyłania: 465?

Nie mogę sudo /etc/init.d/ssmtp restartpracować na moim komputerze.
Nam G VU

1

Jeśli używasz Thunderbirda, możesz skonfigurować zdalny serwer dla SMTP. O ile nie masz własnego serwera pocztowego, zwykle byłby to serwer przekaźnikowy Twojego usługodawcy internetowego lub serwer SMTP dostawcy poczty. Z powodzeniem używałem Gmaila jako mojego serwera SMTP, ale wymaga on uwierzytelnienia. (Niektóre inne hosty również mogą.)

Przetestuj dostęp do serwera za pomocą polecenia telnet mail.example.com 25. Jeśli to działa, otrzymasz wiadomość banerową z serwera.

Gdy Thunderbird będzie pracował z serwerem, możesz skonfigurować Exim lub Postfix jako serwer satelitarny dla tego samego serwera. Możesz to pominąć, jeśli nie musisz wysyłać wiadomości e-mail poza system z innych aplikacji. Uważaj, aby adres źródłowy na serwerze wychodzącym mógł akceptować wiadomości e-mail.

EDYCJA: Sprawdź, czy nie masz aktywowanych iptables i blokujących ruch wychodzący. Jeśli tak, włącz ruch wychodzący na wybranym porcie. Możesz użyć polecenia, tcptraceroute mail.example.com 25aby zobaczyć, gdzie się blokujesz. tcptraceroutemusiałby zostać zainstalowany przed użyciem.


Telnet: Nie można połączyć się ze zdalnym hostem: upłynął limit czasu połączenia. Jestem pewien, że zdalny serwer może akceptować pocztę na porcie 25. Udało mi się wysłać e-maile na ten zdalny serwer z innego komputera (Windows 7).
afaf12

0

Przetestowałem to na włóczęgi i działa idealnie. Zainstalowano następujące rzeczy, uruchamiając polecenie

apt-get install php-pear

gruszka zainstalować pocztę

gruszka zainstalować Net_SMTP

gruszka zainstalować Auth_SASL

gruszka zainstaluj mail_mime

Następnie zainstaluj postfiks, uruchamiając następujące polecenie

apt-get install postfix

podczas instalacji Wybierz--

Witryna internetowa i localhost zamiast serwera, ponieważ próbujemy tego na localhost

Następnie uruchom następujące polecenie

sudo vim /etc/ssmtp/ssmtp.conf

wprowadzać zmiany w plikach

zmień to na plik ssmtp.conf

FromLineOverride = TAK

AuthUser=youremail@gmail.com

AuthPass = twoje przepustki

najważniejsze, aby twój e-mail był dostępny dla mniej bezpiecznych aplikacji przez

https://www.google.com/settings/security/lesssecureapps

a następnie możesz użyć funkcji poczty php lub Enter następującego polecenia w terminalu, aby wysłać pocztę z samego terminala

$ ssmtp youremail@gmail.com

Od: youremail@gmail.com

DO: sendto@email.com

Temat: Temat

Witaj, to mój pierwszy e-mail ssmtp !.

naciśnij Ctrl + D, a ssmtp wyśle ​​Twój e-mail

Możesz także sprawdzić, czy smtp działa, czy nie działa na twoim komputerze

ping smtp.gmail.com

- wyjście z tego polecenia jest podobne

64 bajty z sc-in-f108.1e100.net (74.125.68.108): icmp_seq = 1 ttl = 63 czas = 68,4 ms

telnet smtp.gmail.com 587

- wyjście musi być coś takiego

Próbuję 74.125.68.108 ...

Połączono z gmail-smtp-msa.l.google.com.

220 smtp.gmail.com ESMTP l14sm12513264pfb.73 - gsmtp

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.