http://linux.vbird.org/linux_server/0380mail.php
亮点:
•.myhostname:設定主機名稱,需使用 FQDN 喔
這個項目在於設定你的主機名稱,且這個設定值會被後續很多其他的參數所引用,所以必須要設定正確才行。 你應該要設定成為完整的主機名稱。在鳥哥的這個練習當中,應該設定為: myhostname = www.centos.vbird 才對。 除了這個設定值之外,還有一個 mydomain 的設定項目,這個項目預設會取 $myhostname 第一個『.』之後的名稱。 舉例來說上頭設定完畢後,預設的 mydomain 就是 centos.vbird 囉!你也可以自行設定他。
•.myorigin :發信時所顯示的『發信源主機』項目
這個項目在設定『郵件標頭上面的 mail from 的那個位址』, 也就是代表本 MTA 傳出去的信件將以此設定值為準喔!如果你在本機寄信時忘記加上 Mail from 字樣的話, 那麼就以此值為準了。預設這個項目以 $myhostname 為主的,例如: myorigin = $myhostname
2011.11.24再次转载
如果要从信任IP以外的地方用postfix发信,则需要使用SASL认证。
http://linux.vbird.org/linux_server/0380mail.php#postfix_basic
亮点:
•.啟動 saslauthd 服務:進行 SMTP 明碼身份驗證功能
saslauthd 是 Cyrus-SASL 提供的一個帳號密碼管理機制,他能夠進行挺多的資料庫驗證功能, 不過這裡我們僅使用最單純簡單的明碼驗證 (PLAIN)!如果我們想要直接使用 Linux 系統上面的使用者資訊, 也就是 /etc/passwd, /etc/shadow 所記載的帳號密碼相關資訊時,可以使用 saslauthd 提供的『 shadow 』這個機制, 當然也能使用『 pam 』啦!更多的 saslauthd 連線至 MTA 的機制請『 man saslauthd 』來查閱吧。 由於我們的帳密可能來自網路其他類似 NIS 伺服器,因此這裡建議可以使用 pam 模組喔!
saslauthd 的啟動真是好簡單,首先你必需要選擇密碼管理機制,這個可以使用底下的方式處理:
# 1. 先瞭解你的 saslauthd 有支援哪些密碼管理機制: [root@www ~]# saslauthd -v saslauthd 2.1.23 authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap # 上列的特殊字體部分就是有支援的!我們要直接用 Linux 本機的使用者資訊, # 所以用 pam 即可,當然也能夠使用 shadow 啦。 # 2. 在 saslauthd 設定檔中,選定 pam 的驗證機制: [root@www ~]# vim /etc/sysconfig/saslauthd MECH=pam <==其實這也是預設值啊! # 這也是預設值,有的朋友喜歡單純的 shadow 機制,也可以啦! # 3. 那就啟動吧! [root@www ~]# /etc/init.d/saslauthd start [root@www ~]# chkconfig saslauthd on |
之後我們必需要告知 Cyrus 這個咚咚使用來提供 SMTP 服務的程序為 saslauthd 才行,設定的方法很簡單:
[root@www ~]# vim /etc/sasl2/smtpd.conf log_level: 3 <==登錄檔資訊等級的設定,設定 3 即可 pwcheck_method: saslauthd <==就是選擇什麼服務來負責密碼的比對啊 mech_list: plain login <==那麼支援的機制有哪些之意! |
我們可以使用 mech_list 列出特定支援的機制。而且 saslauthd 是個很簡單的帳號密碼管理服務,你幾乎不需要進行什麼額外的設定,直接啟動他就生效了!真是好方便! ^_^
•.
更改 main.cf 的設定項目:讓 postfix 支援 SMTP 身份驗證
那我們的 postfix 該如何處理呢?其實設定真的很簡單,只要這樣做就好了:
[root@www ~]# vim /etc/postfix/main.cf # 在本檔案最後面增加這些與 SASL 有關的設定資料: smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes # 然後找到跟 relay 有關的設定項目,增加一段允許 SMTP 認證的字樣: smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, <==重點在這裡!注意順序! reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination, reject_rbl_client cbl.abuseat.org, reject_rbl_client bl.spamcop.net, reject_rbl_client cblless.anti-spam.org.cn, reject_rbl_client sbl-xbl.spamhaus.org, check_policy_service unix:/var/spool/postfix/postgrey/socket [root@www ~]# /etc/init.d/postfix restart |
上面關於 SASL 的各個項目的意義是這樣的:
•.smtpd_sasl_auth_enable
就是設定是否要啟動 sasl 認證的意思,如果設定啟動後 postfix 會主動去載入 cyrus sasl 的函式庫, 而該函式庫會依據 /etc/sasl2/smtpd.conf 的設定來連結到正確的管理帳號與密碼的服務。
•.smtpd_sasl_security_options
由於不想要讓匿名者可以登入使用 SMTP 的 Relay 功能,於是這個項目中只要設定 noanonymous 即可。
•.broken_sasl_auth_clients
這個是針對早期非正規 MUA 的設定項目,因為早期軟體開發商在開發 MUA 時沒有參考通訊協定標準, 所以造成在 SMTP 認證時可能會發生的一些困擾。這些有問題的 MUA 例如 MS 的 outlook express 第四版就是這樣! 後來的版本應該沒有這個問題。所以這個設定值你也可以不要設定!
•.smtpd_recipient_restrictions
最重要的就是這裡啦!我們的 sasl 認證可以放在第二行,在區域網路這個可信任區域的後面加以認證。 上表的設定意義是:區域網路內的 MUA 不需要認證也能夠進行 relay ,而非區網內的其他來源才需要進行 SMTP 認證之意。
HxLauncher: Launch Android applications by voice commands