Wednesday, 8 February 2017

Cấu hình hệ thống email để không bị quẳng vào Spam


Mail spam và OpenDKIM

Cài đặt và vận hành 1 hệ thống email là một trong những thứ lằng nhằng nhất khi làm sysadmin.
Một hệ thống email hoàn chỉnh hoạt động sẽ cần đến khoảng một chục thành phần khác nhau, nhưng hoạt động là chưa đủ, để email gửi ngon lành, không bị vào Spam thì phải hiểu thêm một đống thứ nữa.

Khi gửi mail đến Gmail, hệ thống Gmail sẽ coi mail của bạn là spam nếu email đó chưa authenticated. Xem đầy đủ tại đây: https://support.google.com/mail/answer/81126?hl=en#authentication

Google yêu cầu hệ thống của bạn khi gửi mail phải
- "Sign message" bằng DKIM
- Phải có SPF DNS record tương ứng với hệ thống mail
- Phải có DMARC policy (DNS record)

Một hệ thống mail chỉ có mỗi mail server (MTA-E.g: postfix) thì khả năng vào sọt rác là rất cao, thậm chí còn bị Gmail reject , không nhận mail.

Cài đặt OpenDKIM

Xem tại Ubuntu wiki ArchLinux wiki
chú ý: khi dùng với postfix, mặc dù đã config
cho postfix đọc từ UNIX socket trong /var/run/opendkim nhưng sẽ báo lỗi

postfix/smtpd: warning: connect to Milter service unix:/var/run/opendkim/opendkim.sock: No such file or directory
Mặc dù file đó có tồn tại.
Bởi nếu postfix được cấu hình chroot thì file thực sự mà postfix cần đọc là
/var/spool/postfix/var/run/opendkim/
Nếu đã đổi path mà gặp lỗi mới: Permission Denied thì cần chỉnh lại cho user opendkim và postfix đều có thể đọc ghi được socket này. Xem thêm tại stackexchange.

Kiểm tra mail có bị coi là spam không?

Để kiểm tra 1 email có khả năng gửi thành công không, gửi mail tới điạ chỉ cung cấp bởi https://www.mail-tester.com/ và xem kết quả. Nếu được 10/10 điểm thì mới có khả năng vào inbox.



Sau khi mail đã config đầy đủ, gửi mail đi và Gmail nhận được, ta có thể mở mail ra và chọn "Show original" để xem chi tết các header.


Delivered-To: hvn@familug.org
Received: by 10.129.183.19 with SMTP id v19csp2611504ywh;
        Wed, 8 Feb 2017 01:59:48 -0800 (PST)
X-Received: by 10.99.177.79 with SMTP id xx.185.1486547987988;
        Wed, 08 Feb 2017 01:59:47 -0800 (PST)
Return-Path: <noreply@mydomain.io>
Received: from mail.mydomain.io (mail.mydomain.io. [X.Y.Z.A])
        by mx.google.com with ESMTPS id xx.183.2017.02.08.01.59.47
        for <hvn@familug.org>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Wed, 08 Feb 2017 01:59:47 -0800 (PST)
Received-SPF: pass (google.com: domain of noreply@mydomain.io designates X.Y.Z.A as permitted sender) client-ip=X.Y.Z.A;
Authentication-Results: mx.google.com;
       dkim=pass (test mode) header.i=@mydomain.io;
       spf=pass (google.com: domain of noreply@mydomain.io designates X.Y.Z.A as permitted sender) smtp.mailfrom=noreply@mydomain.io;
       dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mydomain.io
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mydomain.io; s=mail; t=1486547986; bh=4gSUPFEbL0AVNZgp7mWzvLBQoA9xxx6Gu7yzeF8Q=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From; b=aqLNWbhrzxxxxR5oBr32fea/AQi1yXamFsB4VVfXpAUat3Q/Vh5gwJUg0wILd
     m1IobqvwnVnEwkpTxxHaw2h8CVltVb9L3U0THal37oPiQg41BDnLhMtpvaU8eE1xZj
     V5ZgKOfvzU4sROu3CAIWVVxzacd9X31PKTIHKCEU=

Nhìn kỹ ta sẽ thấy dkim=pass spf=pass dmarc=pass

Đầy đủ những tiêu chuẩn này vẫn chưa đảm bảo email sẽ được vào inbox, cần kiểm tra xem mail server IP có bị blacklist không: http://multirbl.valli.org/, mail server này đã từng gửi email và bị cho vào spam chưa (trước khi setup DKIM chẳng hạn). Hay nội dung email có giống như các mail spam không...

xem thêm tại: HackerNews
Để tự cài đặt một hệ thống mail cá nhân, có thể xem MailInABox
Nếu cuối cùng mail vào Inbox, cũng là lúc bạn nên mua cho mình 1 chai 🍺 để tự thưởng, vì bạn xứng đáng 😍

Hết.
Happy sysadmin 😂
HVN at http://www.familug.org/ and http://pymi.vn