Bagaimana cara saya mengatur server email?

59

VPS saya menjalankan Ubuntu, dan saya ingin dapat menerima email ke domain saya.

Bagaimana cara mudah mengatur server mail untuk melakukan ini?

Stefano Palazzo
sumber
3
Pertanyaan yang bagus, saya menunggu jawaban yang bagus. Saya telah membangun beberapa server surat selama bertahun-tahun dan itu tidak pernah mudah. Banyak keputusan: server SMS apa, IMAP / POP apa, cara menyimpan surat, cara menyimpan pengguna ... Saya benar-benar tidak dapat memberikan jawaban yang mudah .
Javier Rivera

Jawaban:

48

Beginilah cara saya mengatur mail di mesin produksi kami. Inilah kriteria yang kami butuhkan:

  • Akun Email
  • Email Alias ​​(Penerusan)
  • IMAP, POP3, dan SMTP

"Mudah" (tl; dr)

Pertama, saya ingin membahas apa yang tampaknya menjadi solusi termudah .

sudo tasksel install mail-server

Beberapa masalah dengan ini terjadi ketika kami mencoba ini: Pertama menginstal Dovecot, yang baik untuk sebagian besar, tapi kami menganggap Courier lebih baik dari keduanya untuk kebutuhan kita . Kedua, ia menggunakan Postfix yang bagus tetapi kita juga perlu Exim karena ini adalah server MTA / SMTP yang lebih kuat. Ketiga, ia menginstal MySQL - dalam konfigurasi yang saya gunakan, kami lebih suka file flat untuk konfigurasi karena ini adalah satu hal yang kurang penting. Pikirkan apa yang akan terjadi jika MySQL mogok karena alasan yang tidak diketahui. Kalau tidak, paket-paket lainnya cukup sederhana dan mudah dikelola untuk layanan surat kecil (bayangkan total 1-2 domain email).

Konfigurasi Kami

Struktur Direktori

Kami tersesat sedikit di luar jalur konfigurasi normal tetapi membuat manajemen lebih mudah.

Semua surat kami disimpan di /var/mail/virtual/<domain>/<user>/mailJadi untuk contoh masa depan saya akan menggunakan [email protected], [email protected], [email protected]untuk mewakili alamat email, forwarder untuk pergi ke [email protected], dan alamat buruk masing-masing. Dalam contoh di atas akan menjadi /var/mail/virtual/example.com/email/mail.

Saya juga memelihara daftar semua domain di server /etc/valiasestetapi lebih banyak tentang itu nanti.

Postfix

Ini kurang lebih adalah bagian yang mudah dari pengaturan. Cukup instal postfixpaket.

Exim

Instal Exim dengan apt-get install exim4 exim4-base exim4-config exim4-daemon-heavySetelah terinstal, Anda perlu mengedit konfigurasi default exim untuk mengganti atau menambahkan nilai-nilai berikut:

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

(Baris ini akan muncul di berbagai bagian file, ganti masing-masing sesuai)

Setelah selesai, update-exim4.confbuat kembali konfigurasi exim dengan This menyimpulkan perubahan yang diperlukan untuk Exim

Kurir

Instal Courier dengan courier-baseini harus menginstal courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Jujur tidak ada banyak konfigurasi di luar standar. Anda hanya perlu membuat basis data pengguna.

Akun

Exim dan Courier memeriksa beberapa tempat untuk melihat apakah login atau email yang masuk valid. Exim memeriksa apakah domain tersebut terdaftar sebagai nama host lokal, atau apakah domain tersebut ada /var/mail/virtualatau jika domain tersebut ada /etc/valiases.

Membuat Akun Email

Saya akhirnya membuat beberapa alat untuk merampingkan proses ini - tetapi menambahkan pengguna baru masuk ke irama:

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/

Kemudian tambahkan alamat tersebut ke kurir userdb - sehingga mereka bisa masuk

userdb [email protected] set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

Pastikan untuk mengganti nilai yang sesuai. Juga - uiddan gid harus menjadi id pengguna / grup numerik untuk pengguna email.

userdbpw -md5 | userdb [email protected] set systempw

Ini akan meminta Anda untuk kata sandi, masukkan kata sandi yang ingin Anda gunakan untuk akun tersebut.

makeuserdb

Akhirnya, buat file hash / shadow userdb. Mulai ulang Kurir dan uji apakah perubahan Anda berfungsi:

authtest [email protected]

Seharusnya menghasilkan sesuatu yang mirip

Authentication succeeded.

     Authenticated: [email protected]  (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)

Jika Anda melihat "Otentikasi GAGAL: Operasi tidak diizinkan" alih-alih edit / etc / kurir / authdaemonrc dan tambahkan authuserdb ke baris authmodulelist.

Setelah semua tes dikonfirmasi, mulai ulang berbagai layanan yang terlibat ( courier-authdaemon, exim4), buka port 143, 25, 586, 495, 110 dan siapkan akun di klien email favorit Anda.

Membuat alias email

Untuk setiap domain Anda harus membuat file di /etc/valiases(buat jika tidak ada) dengan setidaknya baris berikut:

*: :fail: No user at this address.

Apa yang tertulis di sini: Jika email masuk tidak cocok dengan akun email apa pun yang saya miliki di file - maka email tersebut harus gagal dan terpental dengan pesan: "Tidak ada pengguna di alamat ini". Jadi semua email yang dikirim untuk mengatakan: [email protected]akan ditolak sebagai kegagalan.

Namun, kami memiliki beberapa alamat email yang ingin kami pertahankan di tempat lain - misalnya [email protected] - untuk melakukannya, kami perlu membuat /etc/valiases/example.comdan isi file harus sebagai berikut:

fwd: [email protected]
*: :fail: No user at this address.

Dengan begitu, meskipun [email protected] tidak cocok dengan akun email mana pun di server, [email protected] cocok dengan /etc/valiasesfile tersebut dan surat akan diteruskan ke [email protected] - Namun, [email protected] masih akan gagal dengan pesan "Tidak ada pengguna di alamat ini".

Marco Ceppi
sumber
11
Apakah ini disertai dengan nomor ISBN?
Wesley
1
@WesleyDavid Saya tidak berpikir sejarah bash saya akan muncul sebagai ISBN :)
Marco Ceppi
Hanya mengikuti ini - sangat dihargai - Saya telah mengedit di atas untuk menutupi kesalahan yang saya dapatkan dengan baris authtest.
Darren Greaves
@DarrenGreaves Terima kasih! Saya senang ini membantu dan terima kasih atas pembaruannya!
Marco Ceppi
Saya berjuang untuk mendapatkan semua ini berfungsi - Saya hanya mendapatkan routing valiases untuk bekerja ketika saya menambahkan 350 file routing (diedit untuk path) dari debian-administration.org/articles/140 - domain virtual tidak dapat berfungsi sama sekali - apakah Anda harus menambahkan file perutean sama sekali? Ta.
Darren Greaves
14

Cara termudah adalah menjalankannya sudo tasksel install mail-server. Itu akan memberi Anda server email dengan standar waras. Yang harus Anda lakukan adalah menjawab beberapa pertanyaan. Jelas, Anda masih dapat melakukan konfigurasi manual setelah itu jika itu perlu, tetapi dalam kebanyakan kasus tidak. Cukup ikuti petunjuk di layar dan Anda akan baik-baik saja.

Membaca di administrasi layanan email benar-benar direkomendasikan.

Referensi Resmi:

Jo-Erlend Schinstad
sumber
Apakah ada cara malas untuk melihat apa yang akan dilakukan (paket yang akan diinstal, pengaturan default) ?. Maksud saya malas tanpa menginstalnya sendiri.
Javier Rivera
@Javier Anda dapat melihat konten apa yang diinstal dengan menjalankansudo tasksel --task-packages mail-server
Marco Ceppi
Konfigurasi disimpan di MySQL, tidak ada anti-spam, tidak ada anti-virus ... itu tidak benar-benar berguna bagi kami :(.
Javier Rivera
4

Baru saja melakukan ini sendiri, Anda memang membutuhkan postfix, dan dalam kasus saya, saya ingin server imap juga sehingga saya dapat menggunakan klien gui yang bagus (tidak menyebutkan nama) di komputer lain. Saya menggunakan dokumen-dokumen ini:

Postfix

Dovecot (imap dan pop3)

Ini sebenarnya cukup sederhana, aktif dan berjalan dalam beberapa menit dan saya menerima email. Ini juga berguna untuk memeriksa bahwa semuanya sudah diatur pingability ok .

Oh, dan tentu saja Anda harus mengatur entri dns Anda dengan benar seperti di bawah ini (berdasarkan pengaturan yang berfungsi untuk saya):

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

dan

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

Catat pemberhentian penuh di ujung server surat dan masukkan alamat ip dan nama domain Anda jika perlu.

NimChimpsky
sumber