[精讚] [會員登入]
9118

[Centos] 安裝及使用postfix,設定虛擬帳號及轉寄

使用postfix來設定虛擬帳號及轉寄

分享此文連結 //n.sfs.tw/10974

分享連結 [Centos] 安裝及使用postfix,設定虛擬帳號及轉寄@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2024-06-11 13:47:49 最後編修
2017-04-13 15:22:34 By 張○○
 

自動目錄

OS

CentOS release 6.5 (Final)

目的

由於Gmail很好用,所以現在自架mail server的情況越來越少,甚至很多人已經好幾年沒再架過(例如我)。的確,Gmail是很好用,但是無法帶自己的網域,以前Gmail可以設定成自己的網域(例如user@yourdomain.com這種郵址),而且會有五個免費的帳號。現在這個免費的帳號已經沒有,變成15天的試用期,同時整合為G-Suite。

所以自己的網域要弄email server的話,就得自己架郵件伺服器。自己架面臨的最大麻煩就是,數不盡的垃圾信有可能塞爆你的mailbox,此外,不佳的設定會也變成塞爆別人mailbox的禍源。更別提多如牛毛的設定:防火牆、網域、反解、認證、憑證甚至是備份複本等。也許設定完畢之前,工程師太麻煩受不了去投104了。

反正現在大家都有email,我們只要做一個虛擬帳號再轉寄給原本習慣的email即可,不但能解決垃圾信的問題,本機上面也不留信件,不必擔心維護的問題。接下來使用postfix來達到這個目的。

安裝

# yum install postfix

關閉sendmail
# chkconfig sendmail off

開啟postfix
# chkconfig postfix on

設定網域和防火牆

請把你的網域MX記錄指到你的伺服器,像這樣(關於DNS設定過程略):

n.sfs.tw.               86400   IN      MX      10 n.sfs.tw.

postfix收信是使用25埠,所以25埠應該對外開放

防火牆設定略

設定postfix的main.cf

# vi /etc/postfix/main.cf

# 我的主機名稱 在Internet上的本機名稱,FQDN格式
myhostname = mail.n.sfs.tw
# 我的網域 一般而言就是主機名稱少了第一個字節
mydomain = n.sfs.tw
# 我的來源 你的email @後面帶的那個部分
myorigin = $mydomain
# 收信源
inet_interfaces = all

# 可寄信的網域
mynetworks = 60.249.118.x, 127.0.0.0/8

# 虛擬帳號
virtual_alias_domains = n.sfs.tw
virtual_alias_maps = hash:/etc/postfix/virtual

設定虛擬轉寄的帳號

# vi /etc/postfix/virtual

裡面的寫法是:

虛擬帳號郵址 轉寄郵址

一行一筆,例如下面兩筆要轉寄給我的gmail(user@gmail.com當然這個帳號是寫此文假設的)

service@n.sfs.tw user@gmail.com
note@n.sfs.tw user@gmail.com

存檔後hash
# cd /etc/postfix
# postmap /etc/postfix/virtual

啟動postfix

# service sendmail stop

# service postfix start

測試及除錯

上例中我設定兩個虛擬帳號,換句話說,這個帳號是虛擬的,本機並不需要去新增這個帳號,同時,本機伺服器也不會有他的mailbox

請用一個其他的信箱(例如axer@tc.edu.tw)寄信到你的虛擬帳號(例如note@n.sfs.tw),再開你的目的email信箱(例如user@gmail.com)去看有沒有收到信

一個成功的範例在user@gmail.com收到

查看你的log

# vi /var/log/maillog

Apr 13 16:02:22 currency postfix/qmgr[1776]: A709B1201EA: from=<axer@example.com>, size=3912, nrcpt=1 (queue active)
Apr 13 16:02:22 currency postfix/smtp[1959]: connect to gmail-smtp-in.l.google.com[2404:6800:4008:c03::1a]:25: Network is unreachable
Apr 13 16:02:22 currency postfix/smtpd[1954]: disconnect from mail-yw0-f179.google.com[209.85.161.179]
Apr 13 16:02:22 currency postfix/smtp[1959]: A709B1201EA: to=<user@example.com>, orig_to=<note@n.sfs.tw>, relay=gmail-smtp-in.l.google.com[74.125.203.27]:25, delay=1.3, delays=0.42/0.01/0.36/0.48, dsn=2.0.0, status=sent (250 2.0.0 OK 1492070599 128si23076785pgg.414 - gsmtp)
Apr 13 16:02:22 currency postfix/qmgr[1776]: A709B1201EA: removed

郵件的除錯非常不容易,需要有很多的經驗才能完成。

如果收不到轉寄的信?

1. 如果你的信寄出好像卡了很久:防火牆或服務未開,判斷依據是完全不會有log

2. 如果有寄出,沒有錯誤的退信:postfix設定不正確,看看log有沒有線索

3. 如果有寄出,有錯誤的退信:恭禧你快oK了,virtual的問題,看看log有沒有線索

轉寄的信會不會塞滿我的伺服器?

不會,因為伺服器若信寄不出去直接會丟棄;有寄出去不會有備份。因為帳號是「虛擬」的,所以本機沒有帳號,當然也不會有信存在。

原本未設轉寄的信會不會不會受影響?

不會,未設轉寄的信會留在伺服器中。可用
$ cat /var/spool/mail/your_account

來讀信

我有困難怎麼辦?

先說在前,很抱歉,我沒辦法幫你。

 

遇過的錯誤

1. fatal: open /etc/postfix/body_checks: No such file or directory

解決:雖然是低級錯誤,但建立這個檔就可以了。

# touch  /etc/postfix/body_checks

 

2. 寫入rcpt to:user@example.com 時遇到Relay access denied;

這次的原因是因為沒有 mx記錄。你的mail server 得有mx記錄才行。

3. NOQUEUE: reject: RCPT from <MAIL SERVER>[<ip>]: 454 4.7.1 <note@n.sfs.tw>: Relay access denied;

設定檔新增一欄virtual_alias_domains [1]

參考資料

[1] https://serverfault.com/questions/766227/postfix-noqueue-reject-rcpt-from-454-4-7-1-relay-access-denied

END

你可能感興趣的文章

[Centos7] 把帳號新增移除具有root權限等級的sudoer 把帳號新增或移除具有root權限等級的sudoer

[Centos7] 修改啟動的runlevel centos7的 runlevel修改和前面的版本都不一樣

[Centos7] 安裝php套件管理程式Composer+ Codeignioter3 很多人在用的套件管理程式 Composer+ Codeignioter3+ 指定安裝目錄

[Centos7] 新的防火牆firewalld Centos7新的防火牆firewalld 和前面的iptables有很大的不同

[Linux] 怎麼修改終端機console下ls的顏色? 在linux下的ls使用--color的參數時,雖然目錄有上色,但是顏色是深藍色很難辨識,要怎麼修改呢?

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

HP SAS硬碟leds燈號說明 HP SAS硬碟leds燈號(hp g7/g6系統適用)說明

如何在linux下執行java 原生的java應用程式可以使用簡單的方法在console下面寫出來,適合作簡單的應用

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

[札記] 2016.7~12月札記 札記,只是札記