2009年7月10日 星期五

軟件評論

在香港,消費者委員會定期會做一些產品測試報告,但大部份都是實體的(tangible)產品。電腦軟件或者是網上服務據我記憶所及,是沒有做過的。例如香港很多機構/個人都有幫襯 web/email hosting 公司,市面也有非常多這類公司,但我從沒有見過一份獨立的測試報告。例如有公司宣稱 unlimited hosting,是否真的 unlimited 呢? 消費者有何保障?

近這一兩星期,我的研究課題是 Email Marketing (電郵推廣)。這種服務的成本很少,技術水平也不高。一般的有經驗的 System Administrator 只需要在網上找找,就會有大量的 opensouce 軟件可供使用。所以這類公司要做到比其他優勝就在 successful delivery rate 和易用的介面上落功夫。這也是我這兩個星期在網上找這些公司的功課。只要可以有試用戶口的,我盡可能都會登記和試用。

促使我寫這篇文就是我昨天試用的一間香港公司 (Sxxxxxx) (其實我有想過開名的,但我不知道有沒有法律責任??)。有幾個問題我想說的:

1. 一間香港公司,主要服務對象是香港客戶,但我查到它的服務器 ip address (包括後來寄 marketing emails 的 ip) 是在美國的。
2. 如果使用者的 ISP 國際頻寬不是太差,美國的服務器可能也不是問題,但它的網頁設計太爛了。網頁大量用了 external 連結 (例如圖片, javascripts)。這其實也是很多網頁設計者沒有留意的,用了 external 連結,有沒有想過這些連結連接有問題時,對網頁的 performance 有無影響?上述公司就有很多 broken external links,以至到 load 一頁化上了一分鐘。
3. 它的介面是簡單的,大部份的用戶只需要跟著步驟,就算是第一次使用也可以成功寄出 marketing emails。這是可讚的。
4. 但似乎這公司沒有做一些詳細的 Testing 。Software Bugs 隨處可見。根據公司的網頁介紹,已經成立了兩三年,這些 bugs 無理由沒有發現。
5. 好了,我試寄了一些電郵,我昨天下午兩點多寄出的(我已是選立即寄出),我今天早上才發現凌晨兩點幾才收到。難道因為這是免費的試用戶口,所以是 delayed sending。
6. 就算收到,但我的 yahoo 和 gmail 戶口都 classify 為「垃圾郵件」,放了入 Spam folder。其實之前我試的兩間香港公司也是這樣的。大家都無研究如何增加 successful delivery rate。
7. 我再查 sending ip address ,原來已經入了好幾個 DNSBL sites 了。有些已是 2007 年入的,似乎完全無打算 unlist 和轉 sending ip address。
8. 可能你會說這些 marketing emails 入了 DNSBL 應該是正常現象,我會請你試用一下 MailChimp,它的轉送量我想比香港任何一間類似公司更多,但我試過幾次寄信,也沒有入了 Spam folder。

這類公司的使用者都是一般的 laymen,正如在網頁上舉的所謂「成功例子」---一個保險從業員。不會是有太多 Technical knowledge,怎麼評價/比較這類網上服務,我想是需要有獨立分析報告。香港的電腦雜誌為何不做呢? 因為廣告原因?

2009年7月3日 星期五

Postfix Email Server with Godaddy Turbo SSL

首先為何要買 SSL Certificates (SSL 憑證),自己簽發的不可以嗎? 當然可以,但自己簽發的根憑證 (root cert) 不是每部電腦都有,「種」在 browser 內不是每一個用戶都能理解。有一張已經在大部份 browser/email client 已經有的 root cert 就沒有「憑證錯誤」的問題。

如果你只想要 SSL connection 又不想用戶見到「憑證錯誤」。(例如以下的 smtps 情況),Godaddy 有一張叫 Turbo Standard SSL Cert便已足夠, 只要在網上找到 promo code (找不到的請電郵給我), US$12.99/year 便可以申請到。只要:

1. 確定你的 domain name 沒有設定為 private,administrative contact 上的電郵地址沒有錯誤。
2. Godaddy 的認證信會寄到這個地址的。

申請程序 Godaddy 的網頁有寫了,最主要是製造一個 CSR 檔,再 submit 上去。




Step 1
su -
mkdir /etc/postfix/ssl cd /etc/postfix/ssl
openssl genrsa -out mail.example.net.key 1024

Step 2
openssl req -new -nodes -key mail.example.net.key -out mail.example.csr
就是 submit 這張 csr 到上述的那網頁。
要留意的是 common name 必需是 mail.example.net (Full Qualified hostname of your email server)

Step 3
在 "Please select your server software from the drop-down list below" 的選項裏,請選 "Apache"。我不知其他的選項如何,但我試過選 "Others" ,出來的 SSL 不能在 postfix 內使用。

Step 4
Submit 了 CSR 檔後,確認信(基本上是即時有)會寄到 whois 的 administrative contact ,跟著信上的指示便可下載一個 zip file (內有 mail.example.net.crt 和 gd_bundle.crt 兩個檔案)

Step 5
將兩個檔案放在 /etc/postfix/ssl 目錄下,加上原有的 mail.example.net.key ,再合成一個 pem 檔。
cat mail.exampel.net.key mail.example.net.crt gd_bundle.crt >> mail.example.net.pem

Step 6
有關在 Postfix 使用 SSL/TLS 的設定,在 /etc/postfix/main.cf 內加上:

####### smtp auth
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = cyrus
local_recipient_maps =
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/mail.example.net.key
smtpd_tls_cert_file = /etc/postfix/ssl/mail.example.net.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
########