2010-10-12

Ubuntu 如何安裝和設定只寄不收 ( Send Only ) 的郵件伺服器 ( SMTP Server ) ?

現在有很多的 Web 軟體都會有寄送郵件的功能,因此,就需要有一台 SMTP 伺服器來讓它可以寄信出去,阿舍之前有介紹過用 Gmail /Google App Mail 來寄信,雖然可以不用自己裝 SMTP 伺服器,不過,有寄出的信件數量限制,所以,阿舍才會想要自己來架架看哩 ! 但是,阿舍怕會被垃圾信攻擊,所以,才會想到把 SMTP 伺服器設定成只寄不收哩 !

阿舍找了一下,發現在 Ubuntu 上要達到只寄不收的功能,可以利用 Exim 郵件軟體的 Light 版本來達成,阿舍試了一下,有成功哩 ! 以下就是安裝和設定方式。 ( 開始之前,要先確定電腦是可以在網際網路上連的到 IP 位址才行,不然,就會比較麻煩哩 ! ) :

1. 設定 hosts 檔
在 /etc/hosts 裡打入下面的資料 ( 168.95.99.99 請換成你的 IP 位址,xyz.arthurtoday.com 請換成你的網域,xyz 請換成你的主機名稱):

127.0.0.1 localhost.localdomain localhost
168.95.99.99 xyu.arthurtoday.com xyu

2.設定 hostname 檔

把剛剛在 hosts 設定的主機名稱加到 /etc/hostname 裡,以阿舍的例子來說,就是 xyz。

3.安裝 Exim

請用下面的指令來安裝 Light 版的 EXIM 和郵件的工具程式,如果出現找不到套件的話,請參考這裡

sudo apt-get install exim4-daemon-light mailutils

4.設定 Exim
Exim 有提供一個文字模式的設定配置程式,可以用下面的指令來啟動。

sudo dpkg-reconfigure exim4-config

阿舍懶得抓畫面了,就請在啟動之後,請照下面順序來對應畫面輸入囉 !!

4-1. 選擇 "internet site; mail is sent ans received directly using SMTP" 這個選項。( General type of ....)

4-2. 請輸入在步驟 1 所設定的主機名稱,以阿舍為例,就是 "xyz.arthurtoday.com"。( The 'mail name' is ....)

4-3. 這裡輸入 127.0.0.1。( IP address to listen....)

4-4. 這裡輸入這台機器的網域,以阿舍為例,就是 "xyz.arthurtoday.com; arthurtoday.com; localhost; localhost.localdomain"。( ...List of recipient domains...)

4-5. 這個地方就留空白。( ...List of recipient domains...)

4-6. 這個地方也是留空白。( .... List of IP address ....)

4-7. 選擇 "No"。(In normal mode of operation Exim...)

4-8. 這裡選那一個都可以,阿舍自己是選 "mbox format in /var/mail"。( Exim is able to store...)

4-9. 選擇 "No"。 ( The Debian Exim4 packages can.... )

4-10. 最後,就要輸入一組郵件位址,用來當作外寄郵件的寄件者,阿舍建議可以設定像是「do-not-reply@arthurToday.com」 。 ( Root and postmaster...)

這樣就算設定完成了。

5.測試
就在這台設定好 Exim 的機器上,執行 mail 指令一步步輸入信件資訊,或是用下面的指令直接寄出去,如果有收信的話,那就出運囉 !! (假設阿舍是寄到 xyu@drupal.soa.tw 的外部信箱 )

echo "Hello ! " | mail -s "My Testing Mail" xyz@drupal.soa.tw


[+] Ubuntu 指令新手會用到的35個技法 - 這是以阿舍的使用經驗編寫出來的電子書,三天內應該就看的完,學的起來哩 ! 有空就參考一下囉 ! ... ^^=

關於阿舍

好文不藏私,請多分享囉!! ^^=



11 則留言 :

ALOHA 提到...

你好,想問一下

這個的話需要配合DNS 設定MX紀錄嗎?

還是只需要有A紀錄就可以寄信了呢?

Arthur Yu 提到...

Hello,

因為沒有要收信,所以,不需要設定 MX , 而
設定與不設定 A Record 都可以的,但是,設了可能會比輆好,不過,重要的是這台 SMTP Server 要有真實 IP,在網路上可以被找,這樣,才能和對方的 SMTP Server 互相交談哩 ! ...^^=

ALOHA 提到...

謝謝你喔
因為我的Drupal安裝的那台伺服器上,沒有mail server的功能
所以信件寄不出去?


我是安裝了smtp,用gmail來發信
但是,效能好像不太好,都要等很久


所以才找到你這個方法
只是不知道能不能成功囉@@~

ALOHA 提到...

想請問阿舍,

我已經安裝好,信件也可以順利發送了

可是我在操作的時候沒有看到
4-10. 最後,就要輸入一組郵件位址,用來當作外寄郵件的寄件者,阿舍建議可以設定像是「do-not-reply@arthurToday.com」 。 ( Root and postmaster...)
這個步驟耶


另外,我可以設定發信者的名稱嗎?
例如直接顯示我的名字,而不是我的信箱地址!

JACK KAO(高俊清) 提到...

不好意思,請問有方法可以設定成讓它自動發信嗎???

Arthur Yu 提到...

Hello,

阿舍沒有很懂你的意思,請問大概是要怎樣的自動發信方式 ? 一般來說,只要搭配一直發信程式就可以自動發信了 ... 供參 ..

曾逸民 提到...
作者已經移除這則留言。
曾逸民 提到...

請問阿舍可以用Exim寄信,然後用Google App收信嗎?

Arthur Yu 提到...

Hello,

應該沒問題,只要把 Mail Client 的 SMTP 指到 EXIM 應該就可以了 ....

供參囉 ! ... ^^=

Man 提到...

Hello,
但寄出的 email, 都被當作 垃圾郵件了, 要如何解決這個問題?

Arthur Yu 提到...

Hello Man,

有可能是這或 Server 沒有可以反查的到的 DNS 記錄造成的 ... 供參囉 ... ^^=

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !