Làm cách nào để thiết lập máy chủ email?


59

VPS của tôi đang chạy Ubuntu và tôi muốn có thể nhận email đến tên miền của mình.

Làm thế nào để tôi dễ dàng thiết lập một máy chủ thư để làm điều này?


3
Câu hỏi tuyệt vời, tôi đang chờ đợi một câu trả lời tuyệt vời. Tôi đã xây dựng một vài máy chủ mail trong những năm qua và nó chưa bao giờ dễ dàng. Rất nhiều quyết định: máy chủ SMS nào, IMAP / POP nào, cách lưu trữ thư, cách lưu trữ người dùng ... Tôi hoàn toàn không thể đưa ra câu trả lời dễ dàng .
Javier Rivera

Câu trả lời:


48

Đây là cách tôi đã thiết lập thư trên các máy sản xuất của chúng tôi. Đây là những tiêu chí mà chúng tôi cần:

  • Các tài khoản email
  • Bí danh Email (Giao nhận)
  • IMAP, POP3 và SMTP

"Dễ dàng" (tl; dr)

Đầu tiên, tôi muốn giải quyết những gì có vẻ là giải pháp dễ nhất .

sudo tasksel install mail-server

Một số vấn đề xảy ra khi chúng tôi thử điều này: Đầu tiên, nó cài đặt Dovecot, điều này tốt cho hầu hết, nhưng chúng tôi coi Courier là tốt hơn cả hai cho nhu cầu của chúng tôi . Thứ hai, nó sử dụng Postfix rất tốt nhưng chúng tôi cũng cần Exim vì đây là máy chủ MTA / SMTP mạnh hơn. Thứ ba, nó cài đặt MySQL - trong cấu hình tôi sử dụng, chúng tôi thích các tệp phẳng hơn cho cấu hình vì nó là một điểm ít phá vỡ hơn. Hãy nghĩ điều gì sẽ xảy ra nếu MySQL bị sập vì một lý do không xác định. Mặt khác, các gói còn lại khá dễ dàng và dễ bảo trì cho một dịch vụ thư nhỏ (nghĩ tổng số 1-2 tên miền email).

Cấu hình của chúng tôi

Cấu trúc thư mục

Chúng tôi đi lạc một chút bên ngoài đường dẫn của cấu hình bình thường nhưng nó giúp quản lý dễ dàng hơn.

Tất cả các thư của chúng tôi được lưu trữ trong /var/mail/virtual/<domain>/<user>/mailVì vậy, ví dụ tương lai tôi sẽ được sử dụng email@example.com, fwd@example.com, foo@example.comđại diện cho một địa chỉ email, một ngành giao để đi đến example@gmail.com, và một địa chỉ xấu tương ứng. Trong ví dụ trên nó sẽ là /var/mail/virtual/example.com/email/mail.

Tôi cũng duy trì một danh sách tất cả các tên miền trên máy chủ /etc/valiasesnhưng sẽ nói thêm về điều đó sau.

Hậu tố

Đây ít nhiều là phần dễ dàng của thiết lập. Chỉ cần cài đặt postfixgói.

Xuất xưởng

Cài đặt Exim với apt-get install exim4 exim4-base exim4-config exim4-daemon-heavySau khi cài đặt, bạn cần chỉnh sửa cấu hình mặc định exim để thay thế hoặc thêm các giá trị sau:

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

(Những dòng này sẽ xuất hiện trong các phần khác nhau của tệp, thay thế từng dòng tương ứng)

Khi đã hoàn tất, hãy xây dựng lại cấu hình exim với update-exim4.confĐiều này kết luận các thay đổi cần thiết cho Exim

Chuyển phát nhanh

Cài đặt Courier với courier-baseđiều này nên cài đặt courier-authdaemon, courier-authlib*, courier-imap*, courier-pop*, courieruserinfo,courier-ssl

Thành thật không có nhiều cấu hình ngoài tiêu chuẩn. Bạn sẽ chỉ cần tạo một cơ sở dữ liệu người dùng.

Tài khoản

Exim và Courier kiểm tra một vài nơi để xem liệu đăng nhập hoặc email đến có hợp lệ không. Exim kiểm tra xem tên miền có được liệt kê dưới dạng tên máy chủ cục bộ không, hoặc nếu tên miền nằm trong /var/mail/virtualhoặc nếu tên miền nằm trong /etc/valiases.

Tạo tài khoản email

Cuối cùng tôi đã tạo ra một số công cụ để hợp lý hóa quy trình này - nhưng việc thêm một người dùng mới sẽ điều chỉnh:

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/

Sau đó thêm địa chỉ vào chuyển phát userdb - để họ có thể đăng nhập

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

Đảm bảo thay thế các giá trị khi thích hợp. Ngoài ra - uidgid cần phải là id người dùng / nhóm số cho người dùng thư.

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

Điều này sẽ nhắc bạn nhập mật khẩu, nhập mật khẩu bạn muốn sử dụng cho tài khoản.

makeuserdb

Cuối cùng, tạo các tệp băm / bóng userdb. Khởi động lại Courier và kiểm tra nếu thay đổi của bạn hoạt động:

authtest email@example.com

Nên sản xuất một cái gì đó tương tự như

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)

Nếu bạn thấy "FAILED xác thực: Không cho phép thao tác" thay vào đó hãy chỉnh sửa / etc / chuyển phát nhanh / authdaemonrc và thêm authuserdb vào dòng authmodulelist.

Sau khi tất cả các kiểm tra đã được xác nhận, hãy khởi động lại các dịch vụ khác nhau có liên quan ( courier-authdaemon, exim4), mở các cổng 143, 25, 586, 495, 110 và thiết lập các tài khoản trong ứng dụng thư khách yêu thích của bạn.

Tạo bí danh email

Đối với mỗi tên miền, bạn nên tạo một tệp trong /etc/valiases(tạo nếu nó không tồn tại) với ít nhất dòng sau:

*: :fail: No user at this address.

Điều này nói gì: Nếu thư đến không khớp với bất kỳ tài khoản email nào tôi có trong hồ sơ - thì thư đó sẽ bị lỗi và bị trả lại với một thông báo: "Không có người dùng tại địa chỉ này". Vì vậy, tất cả các thư được gửi để nói: foo@example.comsẽ bị trả lại là một thất bại.

Tuy nhiên, chúng tôi có một vài địa chỉ email mà chúng tôi muốn duy trì ở nơi khác - giả sử example@gmail.com - để làm như vậy, chúng tôi cần tạo /etc/valiases/example.comvà nội dung của tệp phải như sau:

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

Theo cách đó, mặc dù fwd@example.com không khớp với bất kỳ tài khoản email nào trên máy chủ, nhưng nó khớp với /etc/valiasestệp và thư sẽ được chuyển tiếp tới example@gmail.com - Tuy nhiên, foo@example.com vẫn sẽ thất bại với một thông báo "Không có người dùng tại địa chỉ này".


11
Điều này có đi kèm với một số ISBN không?
Wesley

1
@WesleyDavid Tôi không nghĩ lịch sử bash của mình sẽ hiển thị dưới dạng ISBN :)
Marco Ceppi

Chỉ cần làm theo những điều này - được đánh giá cao - tôi đã chỉnh sửa ở trên để khắc phục lỗi tôi gặp phải với dòng tự động.
Darren Greaves

@DarrenGreaves Cảm ơn! Tôi rất vui vì nó đã giúp và cảm ơn vì đã cập nhật!
Marco Ceppi

Tôi đang vật lộn để làm cho tất cả các công việc này hoạt động - Tôi chỉ có các định tuyến valias hoạt động khi tôi thêm tệp định tuyến 350 (được chỉnh sửa cho đường dẫn) từ debian - ad dùng.org/articles/140 - công cụ miền ảo hoàn toàn không hoạt động - bạn có phải thêm bất kỳ tập tin định tuyến nào không? Ta.
Darren Greaves

14

Cách dễ nhất là chạy sudo tasksel install mail-server. Điều đó sẽ cung cấp cho bạn một máy chủ email với mặc định lành mạnh. Tất cả bạn phải làm, là trả lời một vài câu hỏi. Rõ ràng, sau đó bạn vẫn có thể thực hiện các cấu hình thủ công nếu điều đó là cần thiết, nhưng trong hầu hết các trường hợp, điều đó sẽ không xảy ra. Chỉ cần làm theo các hướng dẫn trên màn hình và bạn sẽ ổn thôi.

Đọc lên quản trị dịch vụ email là hoàn toàn khuyến khích mặc dù.

Tài liệu tham khảo chính thức:


Có một cách lười biếng để xem những gì sẽ làm (gói mà nó sẽ cài đặt, cài đặt mặc định)?. Ý tôi là lười biếng mà không cần cài đặt nó.
Javier Rivera

@Javier bạn có thể xem nội dung nào được cài đặt bằng cách chạysudo tasksel --task-packages mail-server
Marco Ceppi

Cấu hình được lưu trữ trong MySQL, không chống thư rác, không chống vi-rút ... nó thực sự không hữu ích đối với chúng tôi :(.
Javier Rivera


4

Chỉ cần làm điều này một mình, bạn thực sự cần postfix, và trong trường hợp của tôi, tôi cũng muốn một máy chủ imap để tôi có thể sử dụng một máy khách gui đẹp (không đề cập đến bất kỳ tên nào) trên một máy khác. Tôi đã sử dụng các tài liệu này:

Hậu tố

Dovecot (imap và pop3)

Nó thực sự khá đơn giản, đã có nó và chạy trong vài phút và nhận được e-mail. Điều này cũng hữu ích để kiểm tra xem mọi thứ có được thiết lập khả năng ping hay không .

Ồ, và tất nhiên bạn sẽ phải thiết lập chính xác các mục nhập dns của mình như bên dưới (dựa trên các cài đặt phù hợp với tôi):

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

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

Lưu ý dừng hoàn toàn ở cuối máy chủ thư và chèn địa chỉ IP và tên miền của bạn nếu thích hợp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.