此篇不會講太多 Postfix 的設定,只是紀錄如何設定 Postfix mailbox。Postfix 提供兩種 E-mail 儲存格式,一種就是將全部的 mail 都寫到同一個檔案,此方式是 Postfix 裝好後預設的模式,另外的就是一封 E-mail 一個檔案,這兩者各有優缺點好壞,前者最大的問題就在於如果該檔案壞掉,那使用者的全部 Email 就消失了,所以個人比較偏好後面方式,最主要最近裝按要實做 E-mail Queue 功能,後者才能讓程式好判斷該目錄是否有異動。
Mailbox 如果都不修改任何設定預設裝好 Postfix,就可以看到 /var/spool/mail/ 目錄下有許多使用者檔案,一個使用者一個檔案,當然你也可以將使檔案設定在家目錄裡面。打開 /etc/postfix/main.cf 設定檔,並加入底下設定 home_mailbox = Mailbox 此設定會將原本放在 /var/spool/mail/ 目錄下的檔案都換成 /home/appleboy/Mailbox,注意在 bashrc 請加入 $ export MAIL=~/Mailbox Maildir 如果改成此設定,就會變成一個檔案代表一封 email,請在 /etc/postfix/main.cf 加入底下設定
home_mailbox = Maildir/ 接著取消 MAIL 變數 $ unset MAIL 最後寫入新的變數內容 $ export MAILDIR=~/Maildir 重新啟動 postfix $ /etc/init.d/postfix restart 寄封信測試看看目錄是否有建立: $ echo "This is the message body" | mail -s "
[Read More]
[PHP]解決 PEAR::Mail_Mime 標題 UTF-8 亂碼問題(不能顯示)
話說大家在寫 PHP 的時候,一定會很常用到 mail 這個函式,畢竟一個網站一定會有很多需要用到寄信的地方,我先給大家推薦一下 PEAR::Mail_Mime 跟 PEAR::Mail 這兩個 Pear 的套件,用起來相當不錯,支援 html 跟 UTF-8 或者是 Big5 編碼,我之前寫過一篇 [PHP] 好用的 PEAR – PHP Mail and Mail_Mime,裡面寫的還蠻詳細的,不過上次有一個問題還沒解決,就是如果用 UTF-8 編碼的標題,會顯示不出來,Gmail 收到的話就會是 no subject,然後昨天用了一個非常笨的解決方法,改成把標題使用 Big5 就可以了,解決方法如下: Update:感謝 darkhero 提供解決方法: 如果要用 UTF-8 的標題:
$param['head_charset'] = 'utf-8'; $hdrs = array( 'From' => 'appleboy.tw@gmail.com', 'Subject' => '=?utf8?B?' . base64_encode($subj) . '?=', 'Content-type' => 'text/html; charset=utf-8' );先讓主機支援 PEAR:
# # FreeBSD ports 安裝 cd /usr/ports/devel/pear make install clean[Read More]
[PHP] 好用的 PEAR – PHP Mail and Mail_Mime
今天在寫期末的 Project,我的專題是寫無線 802.1X 認證,搭配 FreeBADIUS Server,然後我在搭配網頁整合認證機制,然後我在做使用者帳號申請部份,需要靠 Email 認證,但是我去看官網,介紹好像也沒什麼,在寄信的時候常常會遇到亂碼,不然就是寄信 html 部份會有問題,或者是不能附加檔案之類的,然後網路上找不到一個好用的 class ,所以就用了 PEAR::Mail_Mime 跟 PEAR::Mail,這兩個套件還不錯用,如果想寄單純的信件,就用 PEAR::Mail 這個就可以了,如果要搭配 html 網頁,就要搭上 PEAR::Mail_Mime
[Read More]