Qmail được lựa chọn như một MTA với nhiều ưu điểm và đầy đủ tính năng trong điều kiện và môi trường tại Việt Nam. Tuy vậy bản thân Qmail chỉ là một MTA, nên nó chỉ cung cấp các dịch vụ của MTA. Trong khi đó, yêu cầu về chức năng cũng như an toàn của một hệ thống thư điện tử là rất nhiều như: nhu cầu về lưu trữ thông tin và các tùy chọn cá nhân người dùng địi hỏi phải có một hệ quản trị cơ sở dữ liệu và một máy chủ xác thực, nhu cầu về giao diện người dùng địi hỏi phải có một chương trình mailclient chạy trên nền web (mặc dù người dùng có thể sử dụng một số mailclient chạy trên nền desktop, nhưng mailclient trên nền web vẫn có một số ưu điểm hơn), nhu cầu về phịng chống và lọc thư rác địi hỏi phải có một chương trình qt và lọc thư trên máy chủ … Chính vì vậy, để có thể xây dựng một hệ thống thư điện tử, ngồi
việc tìm hiểu và cài đặt Qmail, cần phải nghiên cứu các tính năng gắn thêm, cập nhật các bản vá, sửa đổi mã nguồn cũng như tích hợp thêm các thành phần đi kèm của Qmail.
Trên tinh thần mã nguồn mở và miễn phí, các thành phần tích hợp được sử dụng đều là các sản phẩm có nhiều ưu điểm đã được cộng đồng đánh giá qua thời gian dài nghiên cứu và thử nghiệm. Các thành phần đó bao gồm: Hệ điều hành Fedora Core 6, máy chủ xác thực LDAP, máy chủ web Apache, hệ quản trị cơ sở dữ liệu MySQL, máy chủ hộp thư (POP3/IMAP) Dovecot, chương trình mailclient SquirrelMail… Các thành phần kể trên được đề cập chi tiết trong phần tiếp theo của khóa luận.
Bên cạnh các thành phần tích hợp cần đóng gói và cài đặt thêm, chính vì Qmail nguyên thủy được thiết kế đơn giản nhất có thể nên Qmail cũng chỉ như là một “bộ khung” của MTA, để đáp ứng được các yêu cầu trong một điều kiện cụ thể cần phải lựa chọn và bổ sung những “bản vá” thích hợp.
Vấn đề bản vá (patch):
- Bản vá là một bản lưu các thay đổi của một phiên bản nào đó so với phiên bản gốc. Thơng thường phiên bản thay đổi đó nhằm mục đích thêm một chức năng nào đó vào phiên bản gốc. Khi cập nhật một bản vá vào phiên bản gốc, ta sẽ được một phiên bản mới có thêm chức năng mà bản vá cung cấp.
- Trong các hệ thống Linux, các bản vá mã nguồn thường được tạo ra bởi công cụ diff – là một công cụ so sánh sự khác nhau giữa hai hay nhiều file văn bản theo từng dòng và đưa ra các dịng khác nhau đó. Sau đó, để cập nhật sự khác nhau từ file này vào một file khác, ta sử dụng cơng cụ patch.
- Với Qmail, có rất nhiều bản vá được phát triển song song với nhau, các bản vá này đa số đều so sánh với phiên bản Qmail chuẩn. Như vậy nếu có nhiều bản vá cùng lúc và muốn cập nhật chúng vào bản Qmail chuẩn, không thể cập nhật lần lượt tất cả các bản vá đó vào Qmail vì sau khi cập nhật bản vá đầu tiên, mã nguồn Qmail chuẩn sẽ bị thay đổi (thêm vào các chức năng mà bản vá thứ nhất cung cấp). Sau đó, bản vá thứ hai không thể được cập nhật vào Qmail đã cập nhật bản vá thứ nhất, vì bản vá thứ hai này chỉ lưu trữ các thay đổi của nó so với Qmail gốc. Có một cách đơn giản để giải quyết vấn đề này, đó là tự sửa lại các thay đổi trong từng bản vá vào phiên bản Qmail chuẩn, vì cơng cụ diff lưu trữ các thay đổi dưới dạng có thể đọc được, nên cách này là có thể thực hiện được.