{"id":96,"date":"2025-12-13T16:39:27","date_gmt":"2025-12-13T16:39:27","guid":{"rendered":"https:\/\/blogs.giamkichsan.com\/?p=96"},"modified":"2025-12-14T22:53:16","modified_gmt":"2025-12-14T22:53:16","slug":"huong-dan-cai-dat-email-server-co-ban-tren-ubuntu","status":"publish","type":"post","link":"https:\/\/blogs.giamkichsan.com\/index.php\/2025\/12\/13\/huong-dan-cai-dat-email-server-co-ban-tren-ubuntu\/","title":{"rendered":"h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t email server c\u01a1 b\u1ea3n tr\u00ean Ubuntu"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1. Chu\u1ea9n b\u1ecb<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu server<\/li>\n\n\n\n<li>Domain (v\u00ed d\u1ee5: <code>example.com<\/code>)<\/li>\n\n\n\n<li>DNS tr\u1ecf: <code>mail.example.com -&gt; IP server MX example.com -&gt; mail.example.com<\/code><\/li>\n<\/ul>\n\n\n\n<p>Ki\u1ec3m tra hostname:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>hostnamectl set-hostname mail.example.com\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. C\u00e0i Postfix<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install postfix -y\n<\/code><\/pre>\n\n\n\n<p>Khi h\u1ecfi c\u1ea5u h\u00ecnh:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>General type: <strong>Internet Site<\/strong><\/li>\n\n\n\n<li>System mail name: <strong>example.com<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Ki\u1ec3m tra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>postfix status\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. C\u1ea5u h\u00ecnh Postfix<\/h2>\n\n\n\n<p>M\u1edf file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/postfix\/main.cf\n<\/code><\/pre>\n\n\n\n<p>\u0110\u1ea3m b\u1ea3o c\u00f3:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>myhostname = mail.example.com\nmydomain = example.com\nmyorigin = \/etc\/mailname\ninet_interfaces = all\nmydestination = $myhostname, localhost.$mydomain, localhost, $mydomain\nhome_mailbox = Maildir\/\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postfix\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. C\u00e0i Dovecot (nh\u1eadn mail)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install dovecot-imapd dovecot-pop3d -y\n<\/code><\/pre>\n\n\n\n<p>C\u1ea5u h\u00ecnh Maildir:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/dovecot\/conf.d\/10-mail.conf\n<\/code><\/pre>\n\n\n\n<p>T\u00ecm v\u00e0 s\u1eeda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mail_location = maildir:~\/Maildir\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart dovecot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. T\u1ea1o user email<\/h2>\n\n\n\n<p>Email s\u1ebd theo user Linux:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo adduser user1\n<\/code><\/pre>\n\n\n\n<p>Email:<br>\ud83d\udce7 <code>user1@example.com<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. M\u1edf firewall<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 25,110,143,465,587,993,995\/tcp\nsudo ufw reload\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Test g\u1eedi mail<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"Hello Mail Server\" | mail -s \"Test\" user1@example.com\n<\/code><\/pre>\n\n\n\n<p>Ki\u1ec3m tra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls \/home\/user1\/Maildir\/new<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">PH\u1ea6N 1: C\u00e0i SSL (Let\u2019s Encrypt)<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. C\u00e0i Certbot<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install certbot -y\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. C\u1ea5p ch\u1ee9ng ch\u1ec9 SSL<\/h2>\n\n\n\n<p>\u26a0\ufe0f <strong>Domain mail.example.com ph\u1ea3i tr\u1ecf \u0111\u00fang IP<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot certonly --standalone -d mail.example.com\n<\/code><\/pre>\n\n\n\n<p>SSL s\u1ebd n\u1eb1m t\u1ea1i:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/letsencrypt\/live\/mail.example.com\/\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. C\u1ea5u h\u00ecnh SSL cho Postfix<\/h2>\n\n\n\n<p>M\u1edf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/postfix\/main.cf\n<\/code><\/pre>\n\n\n\n<p>Th\u00eam ho\u1eb7c s\u1eeda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_tls_cert_file=\/etc\/letsencrypt\/live\/mail.example.com\/fullchain.pem\nsmtpd_tls_key_file=\/etc\/letsencrypt\/live\/mail.example.com\/privkey.pem\n\nsmtpd_tls_security_level = may\nsmtp_tls_security_level = may\nsmtpd_tls_auth_only = yes\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postfix\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. C\u1ea5u h\u00ecnh SSL cho Dovecot<\/h2>\n\n\n\n<p>M\u1edf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/dovecot\/conf.d\/10-ssl.conf\n<\/code><\/pre>\n\n\n\n<p>S\u1eeda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssl = yes\nssl_cert = &lt;\/etc\/letsencrypt\/live\/mail.example.com\/fullchain.pem\nssl_key = &lt;\/etc\/letsencrypt\/live\/mail.example.com\/privkey.pem\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart dovecot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PH\u1ea6N 2: SMTP AUTH (b\u1eaft bu\u1ed9c \u0111\u1ec3 g\u1eedi mail an to\u00e0n)<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/postfix\/main.cf\n<\/code><\/pre>\n\n\n\n<p>Th\u00eam:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_sasl_type = dovecot\nsmtpd_sasl_path = private\/auth\nsmtpd_sasl_auth_enable = yes\nsmtpd_recipient_restrictions =\n  permit_sasl_authenticated,\n  permit_mynetworks,\n  reject_unauth_destination\n<\/code><\/pre>\n\n\n\n<p>K\u1ebft n\u1ed1i Postfix \u2194 Dovecot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/dovecot\/conf.d\/10-master.conf\n<\/code><\/pre>\n\n\n\n<p>T\u00ecm <code>service auth<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>service auth {\n  unix_listener \/var\/spool\/postfix\/private\/auth {\n    mode = 0660\n    user = postfix\n    group = postfix\n  }\n}\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postfix dovecot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PH\u1ea6N 3: Ch\u1ed1ng SPAM (SpamAssassin)<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. C\u00e0i SpamAssassin<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install spamassassin spamc -y\n<\/code><\/pre>\n\n\n\n<p>Enable service:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable spamassassin\nsudo systemctl start spamassassin\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">2. T\u00edch h\u1ee3p SpamAssassin v\u1edbi Postfix<\/h2>\n\n\n\n<p>C\u00e0i amavisd-new:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install amavisd-new -y\n<\/code><\/pre>\n\n\n\n<p>Postfix master:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/postfix\/master.cf\n<\/code><\/pre>\n\n\n\n<p>Th\u00eam cu\u1ed1i file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtp-amavis unix - - - - 2 smtp\n  -o smtp_data_done_timeout=1200\n  -o disable_dns_lookups=yes\n  -o max_use=20\n\n127.0.0.1:10025 inet n - - - - smtpd\n  -o content_filter=\n  -o smtpd_delay_reject=no\n<\/code><\/pre>\n\n\n\n<p>Trong <code>main.cf<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>content_filter = smtp-amavis:&#91;127.0.0.1]:10024\n<\/code><\/pre>\n\n\n\n<p>Restart:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart postfix amavis spamassassin\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PH\u1ea6N 4: SPF, DKIM, DMARC (R\u1ea4T QUAN TR\u1eccNG)<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1. SPF (DNS)<\/h2>\n\n\n\n<p>Th\u00eam TXT record:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>example.com TXT \"v=spf1 mx ip4:IP_SERVER -all\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. DKIM<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install opendkim opendkim-tools -y\n<\/code><\/pre>\n\n\n\n<p>T\u1ea1o key:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/etc\/opendkim\/keys\/example.com\nsudo opendkim-genkey -D \/etc\/opendkim\/keys\/example.com -d example.com -s mail\nsudo chown -R opendkim:opendkim \/etc\/opendkim\n<\/code><\/pre>\n\n\n\n<p>DNS TXT (mail._domainkey):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>v=DKIM1; k=rsa; p=MIIBIjANBgkq...\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. DMARC<\/h2>\n\n\n\n<p>DNS TXT:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>_dmarc.example.com TXT \"v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com\"\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">PH\u1ea6N 5: Auto renew SSL<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo crontab -e\n<\/code><\/pre>\n\n\n\n<p>Th\u00eam:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 3 * * * certbot renew --quiet<\/code><\/pre>\n\n\n\n<p>\u0110\u1ec3 <strong>m\u1edf d\u1ecbch v\u1ee5 g\u1eedi mail SMTP port 587 v\u00e0 465 (SSL)<\/strong> tr\u00ean Ubuntu (ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 <strong>Postfix<\/strong>), b\u1ea1n l\u00e0m <strong>theo \u0111\u00fang th\u1ee9 t\u1ef1<\/strong> d\u01b0\u1edbi \u0111\u00e2y.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 M\u1edf port tr\u00ean Firewall (UFW)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ufw allow 587\/tcp\nufw allow 465\/tcp\nufw reload\nufw status\n<\/code><\/pre>\n\n\n\n<p>N\u1ebfu b\u1ea1n <strong>kh\u00f4ng d\u00f9ng UFW<\/strong>, b\u1ecf qua b\u01b0\u1edbc n\u00e0y.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 C\u1ea5u h\u00ecnh Postfix m\u1edf port 587 &amp; 465<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">M\u1edf file c\u1ea5u h\u00ecnh ch\u00ednh<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/postfix\/master.cf\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 B\u1eadt port 587 (Submission)<\/h3>\n\n\n\n<p>T\u00ecm d\u00f2ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#submission inet n       -       y       -       -       smtpd\n<\/code><\/pre>\n\n\n\n<p>S\u1eeda th\u00e0nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>submission inet n       -       y       -       -       smtpd\n  -o syslog_name=postfix\/submission\n  -o smtpd_tls_security_level=encrypt\n  -o smtpd_sasl_auth_enable=yes\n  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 B\u1eadt port 465 (SMTPS \u2013 SSL)<\/h3>\n\n\n\n<p>T\u00ecm d\u00f2ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#smtps inet n       -       y       -       -       smtpd\n<\/code><\/pre>\n\n\n\n<p>S\u1eeda th\u00e0nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtps inet n       -       y       -       -       smtpd\n  -o syslog_name=postfix\/smtps\n  -o smtpd_tls_wrappermode=yes\n  -o smtpd_sasl_auth_enable=yes\n  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udc49 <strong>L\u01b0u file v\u00e0 tho\u00e1t<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 C\u1ea5u h\u00ecnh SSL\/TLS cho Postfix<\/h2>\n\n\n\n<p>M\u1edf file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/postfix\/main.cf\n<\/code><\/pre>\n\n\n\n<p>Th\u00eam (ho\u1eb7c ch\u1ec9nh):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_tls_cert_file=\/etc\/ssl\/certs\/mail.crt\nsmtpd_tls_key_file=\/etc\/ssl\/private\/mail.key\nsmtpd_tls_security_level=may\nsmtpd_tls_auth_only=yes\n\nsmtpd_sasl_type=dovecot\nsmtpd_sasl_path=private\/auth\nsmtpd_sasl_auth_enable=yes\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udccc N\u1ebfu b\u1ea1n <strong>ch\u01b0a c\u00f3 SSL<\/strong>, c\u00f3 th\u1ec3 d\u00f9ng Let\u2019s Encrypt:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install certbot\ncertbot certonly --standalone -d mail.domain.com\n<\/code><\/pre>\n\n\n\n<p>Sau \u0111\u00f3 d\u00f9ng:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>smtpd_tls_cert_file=\/etc\/letsencrypt\/live\/mail.domain.com\/fullchain.pem\nsmtpd_tls_key_file=\/etc\/letsencrypt\/live\/mail.domain.com\/privkey.pem\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 C\u1ea5u h\u00ecnh Dovecot (SMTP AUTH)<\/h2>\n\n\n\n<p>M\u1edf:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/dovecot\/conf.d\/10-master.conf\n<\/code><\/pre>\n\n\n\n<p>T\u00ecm:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#unix_listener \/var\/spool\/postfix\/private\/auth {\n#}\n<\/code><\/pre>\n\n\n\n<p>S\u1eeda th\u00e0nh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unix_listener \/var\/spool\/postfix\/private\/auth {\n  mode = 0660\n  user = postfix\n  group = postfix\n}\n<\/code><\/pre>\n\n\n\n<p>Restart dovecot:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart dovecot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 Restart Postfix<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl restart postfix\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6\ufe0f\u20e3 Ki\u1ec3m tra port \u0111\u00e3 m\u1edf ch\u01b0a<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -lntp | grep -E '587|465'\n<\/code><\/pre>\n\n\n\n<p>K\u1ebft qu\u1ea3 \u0111\u00fang:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LISTEN 0 100 0.0.0.0:587   users:((\"postfix\",pid=...))\nLISTEN 0 100 0.0.0.0:465   users:((\"postfix\",pid=...))\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7\ufe0f\u20e3 Test g\u1eedi mail<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Test SMTP 587<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl s_client -starttls smtp -connect localhost:587\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Test SMTP SSL 465<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>openssl s_client -connect localhost:465\n<\/code><\/pre>\n\n\n\n<p>N\u1ebfu th\u1ea5y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>250 DSN\n<\/code><\/pre>\n\n\n\n<p>\u2192 Th\u00e0nh c\u00f4ng \ud83c\udf89<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>1. Chu\u1ea9n b\u1ecb Ki\u1ec3m tra hostname: 2. C\u00e0i Postfix Khi h\u1ecfi c\u1ea5u h\u00ecnh: Ki\u1ec3m tra: 3. C\u1ea5u h\u00ecnh Postfix M\u1edf file: \u0110\u1ea3m b\u1ea3o c\u00f3: Restart: <a class=\"mh-excerpt-more\" href=\"https:\/\/blogs.giamkichsan.com\/index.php\/2025\/12\/13\/huong-dan-cai-dat-email-server-co-ban-tren-ubuntu\/\" title=\"h\u01b0\u1edbng d\u1eabn c\u00e0i \u0111\u1eb7t email server c\u01a1 b\u1ea3n tr\u00ean Ubuntu\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-96","post","type-post","status-publish","format-standard","hentry","category-ubuntu-he-dieu-hanh"],"_links":{"self":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/96","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/comments?post=96"}],"version-history":[{"count":3,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/96\/revisions"}],"predecessor-version":[{"id":100,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/posts\/96\/revisions\/100"}],"wp:attachment":[{"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/media?parent=96"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/categories?post=96"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.giamkichsan.com\/index.php\/wp-json\/wp\/v2\/tags?post=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}