smtp服務器搭建(實現本地通訊)

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管理員報告錯誤時的信息級別。共有以下幾種級別:

  1. bounce:將不可以投遞的郵件的拷貝發送給postfix管理員。出於個人隱私的緣故,該郵件的拷貝不包含信頭。

  2. 2bounce:將兩次不可投遞的郵件拷貝發送給postfix管理員。

  3. delay:將郵件的投遞延遲信息發送給管理員,僅僅包含信頭。

  4. policy:將由於UCE規則限制而被拒絕的用戶請求發送給postfix管理員,包含整個SMTP會話的內容。

  5. protocol:將協議的錯誤信息或用戶企圖執行不支持的命令的記錄發送給postfix管理員。同樣包含整個SMTP會話的內容。

  6. resource:將由於資源錯誤而不可投遞的錯誤信息發送給postfix管理員,比如:隊列文件寫錯誤等等。

  7. 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

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章