Jak skonfigurować serwer e-mail?


59

Na moim VPS działa Ubuntu i chciałbym móc otrzymywać wiadomości e-mail do mojej domeny.

Jak w łatwy sposób skonfigurować serwer poczty, aby to zrobić?


3
Świetne pytanie, czekam na świetną odpowiedź. Przez lata zbudowałem kilka serwerów pocztowych i nigdy nie było to łatwe. Wiele decyzji: jaki serwer SMS, jaki IMAP / POP, jak przechowywać maile, jak przechowywać użytkowników ... Nie jestem w stanie udzielić łatwej odpowiedzi.
Javier Rivera

Odpowiedzi:


48

Tak skonfigurowałem pocztę na naszych maszynach produkcyjnych. Oto kryteria, których potrzebowaliśmy:

  • Konta email
  • Aliasy e-mail (forwardery)
  • IMAP, POP3 i SMTP

„Easy” (tl; dr)

Po pierwsze, chcę zająć się tym, co wydaje się najłatwiejszym rozwiązaniem.

sudo tasksel install mail-server

Wystąpiło kilka problemów z tym, gdy wypróbowaliśmy to: Najpierw instaluje Dovecot, co jest w porządku dla większości, ale uznaliśmy, że Kurier jest lepszy z tych dwóch dla naszych potrzeb. Po drugie, wykorzystuje Postfix, co jest świetne, ale potrzebujemy również Exima, ponieważ jest to mocniejszy serwer MTA / SMTP. Po trzecie, instaluje MySQL - w konfiguracji, której używam, wolimy płaskie pliki do konfiguracji, ponieważ jest to jeden punkt krytyczny. Pomyśl, co by się stało, gdyby MySQL rozbił się z nieznanego powodu. W przeciwnym razie reszta pakietów jest dość prosta i łatwa w utrzymaniu dla małej usługi pocztowej (pomyśl o sumie 1-2 domen e-mail).

Nasza konfiguracja

Struktura katalogów

Odchodzimy nieco poza ścieżkę normalnych konfiguracji, ale ułatwia to zarządzanie.

Cała nasza poczta jest przechowywana w /var/mail/virtual/<domain>/<user>/mailwięc dla przyszłych przykładach będę używał email@example.com, fwd@example.com, foo@example.comaby reprezentować adres e-mail, aby przejść do spedytora example@gmail.comi zły adres odpowiednio. W powyższym przykładzie byłoby to /var/mail/virtual/example.com/email/mail.

Prowadzę również listę wszystkich domen na serwerze, /etc/valiasesale więcej o tym później.

Przyrostek

To mniej więcej łatwa część konfiguracji. Wystarczy zainstalować postfixpakiet.

Exim

Zainstaluj Exim z apt-get install exim4 exim4-base exim4-config exim4-daemon-heavyPo zainstalowaniu musisz edytować domyślną konfigurację exim, aby zastąpić lub dodać następujące wartości:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(Te linie pojawią się w różnych częściach pliku, zamień odpowiednio każdą)

Po zakończeniu przebuduj konfigurację exim za pomocą update-exim4.confTo kończy zmiany wymagane dla Exim

Kurier

Zainstalować Courier z courier-basetym należy zainstalować courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Szczerze mówiąc, niewiele jest konfiguracji poza standardem. Musisz tylko utworzyć bazę danych użytkowników.

Konta

Exim i Kurier sprawdzają kilka miejsc, aby sprawdzić, czy login lub przychodząca wiadomość e-mail są prawidłowe. Exim sprawdza, czy domena jest wymieniona jako lokalna nazwa hosta, czy domena jest w domenie /var/mail/virtuallub czy domena jest w domenie /etc/valiases.

Tworzenie kont e-mail

W końcu stworzyłem kilka narzędzi, aby usprawnić ten proces - ale dodanie nowego użytkownika polega na:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

Następnie dodaj adres do kuriera userdb - aby mogli się zalogować

userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Pamiętaj, aby w razie potrzeby zastąpić wartości. Ponadto - uidi gid muszą być numerycznymi identyfikatorami użytkownika / grupy dla użytkownika poczty.

userdbpw -md5 | userdb email@example.com set systempw

Spowoduje to monit o podanie hasła, wprowadź hasło, którego chcesz użyć dla konta.

makeuserdb

Na koniec wygeneruj pliki skrótu / cienia userdb. Uruchom ponownie Kuriera i sprawdź, czy zmiany działają:

authtest email@example.com

Powinien produkować coś podobnego do

Authentication succeeded.

     Authenticated: email@example.com  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

Jeśli zobaczysz komunikat „Uwierzytelnianie nie powiodło się: Operacja niedozwolona”, zamiast tego edytuj plik / etc / courier / authdaemonrc i dodaj authuserdb do linii authmodulelist.

Po potwierdzeniu wszystkich testów uruchom ponownie różne usługi ( courier-authdaemon, exim4), otwórz porty 143, 25, 586, 495, 110 i skonfiguruj konta w swoim ulubionym kliencie pocztowym.

Tworzenie aliasów e-mail

Dla każdej domeny należy utworzyć plik /etc/valiases(utwórz, jeśli nie istnieje) zawierający przynajmniej następujący wiersz:

*: :fail: No user at this address.

Co to mówi: jeśli przychodząca poczta nie pasuje do żadnego konta e-mail, które mam w archiwum, to poczta powinna zostać uszkodzona i odesłana z komunikatem: „Żaden użytkownik nie ma tego adresu”. Tak więc cała poczta wysłana z informacją: foo@example.comzostanie odrzucona jako niepowodzenie.

Mamy jednak kilka adresów e-mail, które chcielibyśmy utrzymywać gdzie indziej - powiedzmy przyklad@gmail.com - aby to zrobić, musimy utworzyć, /etc/valiases/example.coma zawartość pliku powinna wyglądać następująco:

fwd: example@gmail.com
*: :fail: No user at this address.

W ten sposób, mimo że fwd@example.com nie pasuje do żadnego konta e-mail na serwerze, pasuje do /etc/valiasespliku, a poczta zostanie przesłana do example@gmail.com - Jednak foo@example.com nadal zawiedzie z komunikat „Brak użytkownika pod tym adresem”.


11
Czy zawiera numer ISBN?
Wesley,

1
@WesleyDavid Nie sądzę, że moja historia bashów pojawi się jako ISBN :)
Marco Ceppi

Po prostu podążam za nimi - bardzo doceniam - edytowałem powyżej, aby ukryć błąd, który wystąpił w wierszu authtest.
Darren Greaves

@DarrenGreaves Thanks! Cieszę się, że to pomogło i dziękuję za aktualizację!
Marco Ceppi

Walczę, żeby to wszystko działało - dostałem tylko routing walidacji, kiedy dodałem (zredagowany dla ścieżek) plik routingu 350 z debian-administration.org/articles/140 - domeny wirtualne w ogóle nie działają - czy w ogóle musiałeś dodać jakieś pliki routingu? Ta.
Darren Greaves

14

Najłatwiej jest uruchomić sudo tasksel install mail-server. To da ci serwer e-mail z rozsądnymi ustawieniami domyślnymi. Wszystko, co musisz zrobić, to odpowiedzieć na kilka pytań. Oczywiście nadal możesz wykonywać ręczne konfiguracje, jeśli jest to konieczne, ale w większości przypadków tak nie będzie. Postępuj zgodnie ze wskazówkami na ekranie i wszystko powinno być w porządku.

Czytanie na temat administracji usługami e-mail jest jednak absolutnie godne polecenia.

Oficjalne referencje:


Czy istnieje leniwy sposób, aby zobaczyć, co się stanie (pakiety, które zainstaluje, ustawienia domyślne) ?. Przez leniwy mam na myśli to, że sam go nie instaluję.
Javier Rivera

@Javier można wyświetlić, jakie treści są instalowane, uruchamiającsudo tasksel --task-packages mail-server
Marco Ceppi

Konfiguracja przechowywana w MySQL, bez antyspamu, antywirusa ... to nie jest dla nas naprawdę przydatne :(.
Javier Rivera


4

Po prostu robię to sam, naprawdę potrzebujesz postfiksu, aw moim przypadku chciałem również serwera imap, aby móc używać fajnego klienta GUI (nie wspominając żadnych nazw) na innym komputerze. Użyłem tych dokumentów:

Przyrostek

Dovecot (imap i pop3)

To jest naprawdę dość proste, uruchomiłem go w ciągu kilku minut i otrzymuję e-maile. Jest to także przydatne, aby sprawdzić, że wszystko jest ustawione ok pingability .

Aha, i oczywiście będziesz musiał poprawnie skonfigurować wpisy dns, jak poniżej (w oparciu o ustawienia, które działały dla mnie):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

i

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

Zwróć uwagę na kropkę na końcu serwerów pocztowych i w razie potrzeby wstaw adres IP i nazwę domeny.

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.