Việc cài đặt thành công một Mail Server luôn đòi hỏi người dùng nhiều kiến thức kỹ thuật để cấu hình, khiến các module kết nối được với nhau. May thay, hiện đang có khá nhiều giải pháp để bạn có thể thực hiện việc tạo Mail Server nhanh chóng, ví dụ như iRedMail.

Trong bài này, mình sẽ hướng dẫn các bạn xây dựng một Mail Server hoàn chỉnh với iRedMail trên Ubuntu deloy trên VPS Vultr.

Lưu ý cần thực hiện đầy đủ theo từng bước để đảm bảo email gửi đi không bị rơi vào Spam hoặc Junk.

1. Deploy VPS ở Vultr

iRedMail hỗ trợ rất nhiều Linux distribution, nhưng mình sẽ lựa chọn Ubuntu 14.04 x64 cho dễ dàng. Server Size chọn gói 768MB RAM, 5$/tháng để thử nghiệm thôi. Trong quá trình dùng nếu cần bạn hãy nâng cấp server lên tương ứng.

Tên miền mình sử dụng là pibox.vn cho bài viết này, DNS quản lý ở CloudFlare. Đây là một tên miền mới nhé, nên khả năng cao email gửi đi sẽ bị vào Spam. Mình sẽ dùng tên miền này để tìm cách đảm bảo email gửi đi vào được Inbox.

Sau khi tạo Deploy xong VPS ở Vultr, bạn hãy vào tab IPv4 để update Reverse DNS về mail.pibox.vn. Nhớ trỏ record mail của tên miền về địa chỉ IP của VPS nữa nhé.

Reverse DNS

Tạo MX  record

– Để nhận được mail, bạn hãy tạo record MX với name là pibox.vn, Server: mail.pibox.vn và Priority mặc định 1

– Ngoài ra, để xác nhận chính xác mail được gửi đi từ server, bạn cần thêm một record SPF nữa. Record type: TXT, Name: pibox.vn với Content: v=spf1 ip4:IP_ADDRESS -all

Kết quả tương tự như hình bên dưới:

DNS

Để test SPF record bạn có thể sử dụng http://mxtoolbox.com với câu lệnh: spf:domain.com

Thay đổi hostname

Đảm bảo hostname của VPS được chuyển thành pibox.vn.

echo "pibox.vn" > /etc/hostname
hostname -F /etc/hostname

Thay đổi tiếp trong file hosts

nano /etc/hosts

Thêm một dòng chứa IP nếu chưa có, ví dụ của mình:

45.32.70.38     mail.pibox.vn

Nhớ restart lại VPS và chạy lệnh hostname xem đã chuẩn chưa nhé.

2. Cài đặt iRedMail

Mình cài đặt bản mới nhất iRedMail 0.9.2.

wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.2.tar.bz2
tar jxvf iRedMail-0.9.2.tar.bz2 && cd iRedMail-0.9.2
bash iRedMail.sh

Đợi một lúc bạn sẽ thấy giao diện cài đặt của iRedMail, nếu không yêu cầu gì đặc biệt bạn cứ để chọn mặc định

iRedMail 1

Tiếp theo chọn mail storage:

iRedMail Mail Storage

Chọn Web Server, mình quen dùng Nginx nên để mặc định luôn

iRedMail Web Server

Database để MySQL, quen rồi

iRedMail Database

Nhập mật khẩu root MySQL

iRedMail MySQL root Password

Nhập vào iRedMail Virtual Domain, do ban đầu mình để hostname là mail.pibox.vn nên lúc này mới nhập được pibox.vn

iRedMail Virtual Domain

Mật khẩu cho tài khoản quản trị postmaster@pibox.vn. Tài khoản này sẽ dùng để cấu hình Mail Server, thêm/sửa/xóa user đó.

iRedMail Admin Password

Tùy chọn bổ sung cài cùng với iRedMail

iRedMail Optional

Xác nhận cuối cùng trước khi cài đặt, nhập y rồi nhấn Enter

iRedMail Xac Nhan

Bạn đợi một lúc cho iRedMail tự động cài đặt. Cuối cùng, hãy reboot lại VPS một lần nữa để hoàn tất quá trình.

Toàn bộ thông tin cần thiết được lưu ở file /root/iRedMail-0.9.2/iRedMail.tips, bạn có thể mở ra để xem và lưu lại một nơi an toàn khác.

Bây giờ bạn đã có thể truy cập vào link http://mail.pibox.vn với tài khoản quản trị postmaster@pibox.vn được rồi đó. Giao diện webmail Roundcube quen thuộc sẽ xuất hiện như bên dưới:

Roundcube

Để vào phần quản lý, hãy truy cập link iRedAdmin: https://mail.pibox.vn/iredadmin/ với Username postmaster@pibox.vn và password bạn chọn ban đầu.

Lưu ý: iRedMail sử dụng self-signed certificate nên khi đăng nhập bạn sẽ nhận được thông báo Your connection is not private. Hãy nhấn Advanced rồi Proceed để tiếp tục:

Certificate Error

Cấu hình DKIM record

Để đảm bảo khi gửi mail từ iRedMail không bị vào mục Spam, bước tiếp theo cần cấu hình DKIM record cho tên miền. Bạn hãy tìm thông tin DKIM có trong file /root/iRedMail-0.9.2/iRedMail.tips. Ví dụ như của mình:

; key#1, domain pibox.vn, /var/lib/dkim/pibox.vn.pem
dkim._domainkey.pibox.vn.       3600 TXT (
  "v=DKIM1; p="
  "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBh8kHyXP9FHFsBAhv0J"
  "H38XIptXBAFfwavCu+Cfhq/YG2Qj5s6XAXX7C2SU6cKNjBNDvNjZy3hTP5lJnddh"
  "igdv2cKO144TJ7yT7SXxw5YG8Wa93Cuj5yqSPMjB3WizHF0eYZTyAm8/7QEeQrZi"
  "0vG8CuYz/QebeMV6h7xR7L+XwAgsyiNvsy/6IhPJC16PA6/kdw1lHLUiZyYL2H3Y"
  "t8BvygFT8pzscVf1CZk0kDDSa9x3ZN88gASoSyB3SkMPPVm39EHttHNzZr7ddxXN"
  "laFYfTehyKRRM8YAu6xwfGnbtY3vM3suY3DsYyQilv+cTQ4EsJzM7gzLsTzNpp1/"
  "zQIDAQAB")

Hãy đăng nhập vào phần quản lý DNS của tên miền, tạo thêm một TXT record mới với Name là dkim._domainkey.pibox.vn., Content: v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvBh8kHyXP9FHFsBAhv0JH38XIptXBAFfwavCu+Cfhq/YG2Qj5s6XAXX7C2SU6cKNjBNDvNjZy3hTP5lJnddhigdv2cKO144TJ7yT7SXxw5YG8Wa93Cuj5yqSPMjB3WizHF0eYZTyAm8/7QEeQrZi0vG8CuYz/QebeMV6h7xR7L+XwAgsyiNvsy/6IhPJC16PA6/kdw1lHLUiZyYL2H3Yt8BvygFT8pzscVf1CZk0kDDSa9x3ZN88gASoSyB3SkMPPVm39EHttHNzZr7ddxXNlaFYfTehyKRRM8YAu6xwfGnbtY3vM3suY3DsYyQilv+cTQ4EsJzM7gzLsTzNpp1/zQIDAQAB

Để đảm bảo chính xác, check lại record một lần nữa với tool http://mxtoolbox.com/dkim.aspx, Domain Name: pibox.vn; Selector: dkim

Cấu hình cuối cùng của tên miền pibox.vn như sau:

DNS Pibox

3. Kết quả

Cuối cùng, mình đã cài đặt thành công một Mail Server với iRedMail. Đặc biệt Mail Server hoạt động độc lập với Web Server.

Đường link để đăng nhập có dạng http://mail.pibox.vn; email có dạng account@pibox.vn. Tất nhiên bạn sẽ tạo được không giới hạn số tài khoản với iRedMail.

Cuối bước cài đặt mình có gửi thử mail đến Gmail và Live, kết quả vào ngay Spam. Sau mấy ngày mày mò, cuối cùng đã phát hiện ra một số điểm mấu chốt bạn cần lưu ý khi cài đặt để gửi mail không vào Spam (tất cả đều đã được nhắc đến trong bài hướng dẫn).

Để email không bị coi là Spam cần lưu ý:

  1. Cấu hình đầy đủ SPF record, DKIM record cho tên miền.
  2. VPS cần cấu hình hostname chuẩn, nhớ restart lại VPS để check lại một lần nữa.
  3. VPS cần cấu hình Reverse DNS chuẩn. Thường mất vài tiếng đến cả ngày mới update xong rDNS nên bạn cần kiên nhẫn.
  4. Với mỗi tài khoản mail, cần phải có Display Name. Cài đặt trong phần Settings/Identities/Display Name. Nên tạo tài khoản mới để test sendmail, đừng dùng tài khoản postmaster.
  5. Cuối cùng cần đảm bảo IP của bạn không bị liệt vào danh sách blacklist: http://mxtoolbox.com/blacklists.aspx

Lưu ý: mình không khuyến khích các bạn tự cài đặt một Mail Server, nên sử dụng các dịch vụ trung gian cho email để đảm bảo hệ thống hoạt động ổn định, ví dụ như:

  • G Suite
  • Yandex
  • Zoho
  • Gandi (5 email address, 1.000 forwarding addresses )
  • GoDaddy (100 email alias)

Nếu muốn gửi email marketing, mời bạn tham khảo 2 nhà cung cấp nổi tiếng hiện nay là GetResponseSendy.

Chúc các bạn thành công!

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

52 Comments

  1. Mr Hùng 1 comment

    “VPS cần cấu hình Reverse DNS chuẩn. Thường mất vài tiếng đến cả ngày mới update xong rDNS nên bạn cần kiên nhẫn.”
    Bạn hướng dẫn mình cấu hình đoạn này vì mình chưa hiểu lắm, server VPS mình thuê tại mắt bão

  2. huy ha 1 comment

    e muốn dùng nhiều domain trên 1 sever bác nào biết chỉ e với ạ, e cảm ơn nhiều

  3. 37 comment

    Mình chỉ cần imap. nhận email, catch all mail và add domain alias thì dùng mail server nào được bạn nhỉ

  4. 37 comment

    Có phải free hết đâu ad. mình cần cái catch all mail nhưng không có sao ấy
    Upgrade to Pro edition to get these features
    self-service: user is able to login to iRedAdmin-Pro to
    change password
    manage mail forwarding
    manage white/blacklist
    manage quarantined mails
    manage spam policy
    Unlimited number of mail lists/aliases
    Per-user real-time quota usage report
    Per-user forwarding, bcc, relay, aliases support
    Alias domain support
    Per-domain bcc, relay, catch-all, account limit control
    Per-domain and per-user service restrictions
    Greylisting control
    Throttling control
    Manage quarantined mails
    View log of received and sent emails
    And many more …

  5. Lê Hữu Sơn 1 comment

    Mình muốn hỏi ở Việt Nam có đơn vị nào cung cấp Bản quyền phần mềm này không. Đơn vị đó có Suppot hỗ trợ cấu hình không. Hiện tại mình cài lên rồi chạy rồi. Nếu có gửi mail cho mình nhé Cảm ơn

  6. Mỹ 5 comment

    Ad ưi.. Cho e hỏi đến bước cài xong iRedMail rồi rs lại là có thể truy cập được webmail phải k ạ? Có phải cấu hình gì thêm với nginx k ạ? E cài iRedMail bản 0.9.7 cho Ubuntu 16.04LTS, nhưng đến bước cài xong iRedMail rồi rs và truy cập mail.domain.com thì chỉ xuất hiện thông báo “Webcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. …”

    1. Việt Phương Moderator

      Bạn cài trên VPS trắng chứ? Bạn vào đúng link không? Vì iRedMail sẽ cấu hình Nginx luôn nên nếu hiện trang mặc định Nginx là bạn cài lỗi rồi

      1. Mỹ 5 comment

        VPS trắg ạ. lúc cài xong iRedMail e thấy nó báo đườg dẫn là domain.com/mail ạ. Nếu thêm /mail thì bị lỗi 403 forbidden ạ. Rồi e thử zô thư mục chứa file http với https tìm dòng “Server_Name_;” thì thấy thế này ạ? Đág lẽ phải là Server_Name domain.com; phải k ạ?

        1. Việt Phương Moderator

          Mail.domain.com mà bạn. Với cả Server_Name đó là để nhận tất cả domain, không phải sửa theo domain nên không ảnh hưởng gì cả

          1. Mỹ 5 comment

            Vâng ạ. Chắc e remove iRedMail rồi cấu hình lại xem sao ạ.

          2. Mỹ 5 comment

            phiên bản iRedMail 0.9.7 có thêm tùy chọn cuối cùng này phải chọn Yes hay No ạ?
            Would you like to use firewall rules provided by iRedMail?
            File: /etc/default/iptables, with SSHD port: 22. [Y|n]

          3. Mỹ 5 comment

            E cài xong và truy cập được rồi ạ. Cảm ơn bài viết của ad rất nhiều ạ

          4. Việt Phương Moderator

            Okie bạn. Ý trên là bạn có muốn dung cấu hình tường lửa Iptables của iRedMail không hay muốn tự cấu hình

  7. Nguyen Tuan Vu 2 comment

    Phải thốt lên rằng wtf ngon, Thank admin đã chia sẻ.
    Có điều bản này phải cập nhật lại bài viết là nó yêu cầu lên bản iRedMail-0.9.7 mới cho cấu hình IRedmail admin ợ. nhưng mà cũng không khác hướng dẫn admin mấy đâu, người mới mò mò cũng ra dc 🙂

    1. Việt Phương Moderator

      Well noted with thanks 🙂 Có gì mình update lại bài viết sau nhé bạn

        1. Việt Phương Moderator

          Mình không xài nên không rõ cụ thể rồi. Chắc edit trong phần giao diện quản trị nền web thôi

  8. Huy 1 comment

    Hỏi bây giờ ko biết có trễ quá không

    Bác ơi cho hỏi sao mình cài đến bước chọn database thì không đi tiếp được nữa , chọn cái nào nó cũng đứng ở màn hình đó

    Mình dùng vps Linode và xài Ubuntu bản 14.04,
    server chưa cài bất cứ gì, chỉ chạy apt-update và upgrade , chỉnh hostname xong là cài iredmail

    Tks bác

  9. KIen Nguyen 4 comment

    Hi anh, em cảm ơn anh. Cho e hỏi thêm là hiện giờ em muốn dùng server đó vừa làm web server, vừa làm mail server có được ko anh? Nếu được anh chỉ qua cho e hướng làm với.

    1. Luân Trần Admin

      Việc cài đặt khá là khó khăn, gần như không thể nhé. Tốt nhất bạn làm server mail riêng ấy.

  10. KIen Nguyen 4 comment

    A luân ơi, sau khi cài xong, ví dụ: e vào địa chỉ example.com hoặc mail.example.com nó đều bị nhảy vào trang đang nhập mail.example.com/mail . Có cách nào để trang example.com không bị default direct tới trang đăng nhập mail không anh?

    1. Luân Trần Admin

      Trang chính bạn trỏ sang hosting hoặc IP server khác thôi, không trỏ về server mail nữa

  11. Tình 2 comment

    Admin cho mình hỏi cấu hình VPS tối thiểu đề cài webmail này bao nhiều vậy ?
    Cám ơn admin nhiều.

  12. trung 1 comment

    Chào anh.
    Cho em hỏi cài đặt hostname của VPS được chuyển thành pibox.vn khi cài xong iredmail nó báo vào đường link ví dụ là https://pibox.vn/mail/ để vào roundcube
    vào https://pibox.vn/iredadmin
    khi vào theo link trên đó thì có dòng chữ: Welcome to nginx!
    và không thấy webmail đâu ạ
    trong khí đó mình đang cần vào mail.pibox.vn
    lỗi này là ở đoạn nào vậy.

  13. cuong 1 comment

    Anh ơi anh có bài hướng dẫn cài roundcube webmail trên Centos 7 không ạ ,cài iredmail em không hiểu cái bước Tạo MX record ạ em dùng tên miền ở 1 and 1 ạ a hướng dẫn em bước này với với, và a có cách nào tạo 1 webmail roundcuber cho người mới bắt đầu như em không ạ vì kiến thức và hệ điều hành này hoàn toàn mới với em thời gian gấp quá em chưa kịp tìm hiểu hết có gì a đọc được và giúp em ạ.
    Cám ơn anh.

    1. Luân Trần Admin

      Cái này mà bạn còn không cái được thì tự cài không nổi đâu, dùng script là nhanh nhất rồi đó.

  14. Phuong 35 comment

    hostname là pibox.vn hay mail.pibox.vn thế bạn??
    Mình đang để host name là fususu.com và làm như bạn nói.
    Nhưng iRedmail lúc tới đoạn điền first domain name nó lại hiện ko được giống serve name: fususu.com 🙁

    1. Luân Trần Admin

      Nội dung bài viết là mình deploy một server mới với địa chỉ mail.pibox.vn, để không ảnh hưởng đến hoạt động chính của server pibox.vn.

  15. Quy 1 comment

    Mình đang có nhu cầu gửi khoảng 1 triệu email / 1 tháng tới người dùng. Nếu sử dụng các dịch vụ SMTP service thì giá hơi đắt. Mình đã cài đặt thành công mail server theo hướng dẫn của bạn. Liệu mình có thể sử dụng mail server này để gửi khối lượng email như trên không? Mình gửi 1 vài email thì thấy vào inbox. Liệu gửi khối lượng lớn smtp có vào spam?

    Cám ơn bạn.

    P/s: Trong bài hướng dẫn của bạn hình như không đúng: echo “pibox.vn” > /etc/hostname, nên thay thế bằng dòng: echo “mail.pibox.vn” > /etc/hostname

  16. Nhungnt 5 comment

    Gửi email không được. Về sau nó tự gửi email lại với nội dung như thế này bác ạ:

    This is the mail system at host mail.domain.com.

    I’m sorry to have to inform you that your message could not
    be delivered to one or more recipients. It’s attached below.

    For further assistance, please send mail to postmaster.

    If you do so, please include this problem report. You can
    delete your own text from the attached returned message.

    The mail system

    : connect to 127.0.0.1[127.0.0.1]:10024: Connection
    refused

  17. Nhungnt 5 comment

    Admin cho em hỏi là em cài trên VPS ở DO ok rồi nhưng em thực hiện gửi email đến gmail thì chỉ được đúng 1 lần.
    Sau đó em gửi email trong nội bộ thì cũng không nhận được. Không biết nguyên nhân vì sao nhỉ 🙁

    1. Luân Trần Admin

      Cái này có rất nhiều nguyên nhân, bạn check lại cẩn thận từng vấn đề một thôi. Cái gì nghi ngờ thì báo lại mình check.

  18. Loi 21 comment

    Cho mình hỏi là mình áp dụng các bước này trên VPS centos 6.5 của DO có ổn không?
    Mình muốn deploy trên VPS của DO sử dụng centos 6.5 🙂

    1. Luân Trần Admin

      Được nhé, nhưng quá trình cài đặt có thể khác, mình chưa thử trên CentOS