1安裝postfix
1)下載安裝包
sudo apt-get install postfix
2)配置服務器
選擇確定。
選擇IneternetSite(通過SMTP發送和接收郵件),然後確定
輸入郵件後綴名,比如如果你想設置你的郵箱地址爲[email protected],則此處系統郵件名稱填寫爲example.com
3)安裝syslog
進入到/var/log/
cd /var/log/
查看是否安裝syslog
ls mail*
如果有mail.err、mail.warn、mail.info、mail.log等文件,說明你的系統中已經安裝上了syslog,無需再安裝了。
否則安裝syslog:
sudo apt-get install rsyslog
另外,postfix也使用了第三方模塊cyrus-sasl實現smtp的驗證服務,需要的時候可以參考別的文檔。
2測試
2.1 Mailutils方式
1)下載mailutils
sudo apt-get install mailutils
2)發送郵件
echo “郵件內容” | mail 收件人郵箱
eg:echo “hello”|mail [email protected]
3)查看發送結果
進入到/var/mail目錄下,用ls命令查看是否有新建的文件,比如root或其他登錄用戶名相同的文件夾。如果有,用vi等查看命令打開就可以看到剛纔發送的郵件。
如果沒有,發送/usr/lib/sendmail –bp指令,若爲
Mail queue is empty
說明郵件已經發送成功。否則,可以看到阻塞的郵件及原因。
如果郵件發送成功但是沒有接收到,請查看/etc/postfix/main.cf文件是否正確。
2.2 Telnet方式
1)連接到本地
telnet localhost25
如果正常,您將會看到以下來自 IMC 的類似響應:
220 xxx ESMTP Postfix
2)鍵入以下命令開始進行通訊:
HELO : ***@***
例如HELO :[email protected]。其中,HELO和冒號之間一定要有空格。您應看到如下類似響應:
250 XXX
鍵入以下命令來通知 IMC 郵件源於何處:
MAIL FROM: ***@***
例如MAIL FROM:[email protected]。您應得到如下類似響應:
250 2.1.0 OK
鍵入以下命令來通知 IMC 郵件的目標地址。
RCPT TO: ***@***
例如RCPT TO:[email protected]。您應看到如下類似響應:
250 2.1.5 OK
鍵入以下命令以通知 IMC 您已準備好發送數據:
DATA
您應看到如下類似響應:
354 End data with<CR><LF>.<CR><LF>
鍵入以下命令以添加主題行:
Subject: testmessage
然後按兩次 Enter 鍵。該命令看不到任何響應。
鍵入以下命令來添加郵件正文:
This is a testmessage
您將看不到來自該命令的響應。
正文輸入完畢回車換行,然後在空行處鍵入句號“.”,然後按ENTER 鍵。您應看到如下類似響應:
250 2.0.0 Ok: queued as E4618143EE8
可以通過quit指令退出。沒有問題的話,你可以在log終端中看到postfix發送郵件的log了。查看結果可以參照mailutils中的查看方法
注:
1、通過telnet,可測試郵件系統是否發送成功,在測試期間,通過
tail -f/var/log/mail*
監控郵件發送log,可明確知道發送的問題在哪。
3 postfix配置說明
postfix最重要的配置文件位於 /etc/postfix/main.cf ,在配置完成後,可通過
sudo /etc/init.d/postfix reload
重新加載配置文件生效。
postfix幾個比較重要的配置:
myorigin
myorigin參數指明發件人所在的域名。如果你的用戶的郵件地址爲[email protected],則該參數指定@後面的域名。缺省 地,postfix使用本地主機名作爲myorigin,但是建議你最好使用你的域名,因爲這樣更具有可讀性。比如:安裝postfix的主機爲 mail.domain.com則我們可以這樣指定myorigin:
myorigin = domain.com
當然我們也可以引用其他參數,如:
myorigin = $mydomain
mydestination
mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix系統要接收什麼樣的郵件。比如:你的用戶的郵件地址爲[email protected],也就是你的域爲
domain.com, 則你就需要接收所有收件人爲[email protected]的郵件。與myorigin一樣,缺省地,postfix使用本地主機名作爲mydestination。如:
mydestination = $mydomain
mydestination = domain.com
notify_classes
在postfix系統中,必須指定一個postfix系統管理員的別名指向一個用戶,只有這樣,在用戶遇到問題時纔有報告的對象,postfix也 才能將系統的問題報告給管理員。notify_classes參數就是用來指定向postfix管理員報告錯誤時的信息級別。共有以下幾種級別:
bounce:將不可以投遞的郵件的拷貝發送給postfix管理員。出於個人隱私的緣故,該郵件的拷貝不包含信頭。
2bounce:將兩次不可投遞的郵件拷貝發送給postfix管理員。
delay:將郵件的投遞延遲信息發送給管理員,僅僅包含信頭。
policy:將由於UCE規則限制而被拒絕的用戶請求發送給postfix管理員,包含整個SMTP會話的內容。
protocol:將協議的錯誤信息或用戶企圖執行不支持的命令的記錄發送給postfix管理員。同樣包含整個SMTP會話的內容。
resource:將由於資源錯誤而不可投遞的錯誤信息發送給postfix管理員,比如:隊列文件寫錯誤等等。
software:將由於軟件錯誤而導致不可投遞的錯誤信息發送給postfix管理員。
缺省值爲:
notify_classes = resource, software
myhostname
myhostname 參數指定運行postfix郵件系統的主機的主機名。缺省地,該值被設定爲本地機器名。你也可以指定該值,需要注意的是,要指定完整的主機名。如:
myhostname = mail.domain.com
mydomain
mydomain參數指定你的域名,缺省地,postfix將myhostname的第一部分刪除而作爲mydomain的值。你也可以自己指定該值,如:
mydomain = domain.com
mynetworks
mynetworks 參數指定你所在的網絡的網絡地址,postfix系統根據其值來區別用戶是遠程的還是本地的,如果是本地網絡用戶則允許其訪問。你可以用標準的A、B、C類網絡地址,也可以用CIDR(無類域間路由)地址來表示,如:
192.168.1.0/24
192.168.1.0/26
inet_interfaces
inet_interfaces 參數指定postfix系統監聽的網絡接口。缺省地,postfix監聽
所有的網絡接口。如果你的postfix運行在一個虛擬的ip地址上,則必須指定其監聽的地址。如:
inet_interfaces = all
inet_interface = 192.168.1.1