Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

Postfix 與 DKIM
post by tommy @ 21 八月, 2006 16:11
上一篇中, 我們提到了 Postfix 與 DomainKeys 之間的應用. 既然提到了 DomainKeys, 當然不能不提 DKIM (DomainKeys Identified Mail) 這個 DomainKeys 的後繼者.

DKIM 目前仍不是一個標準, 但是在不久之後, 很有可能成為一個 RFC. 光看名字應該也可以想像, DKIM 是一個很像 DomainKeys 的東西.

基本上,  DKIM 使用了與 DomainKeys 相同的 DNS 設定, 只是檢驗的方式有些不同 (大同小異, 使用的 header 不同). 所以, 知道怎麼安裝 DomainKeys milter, 就應該會安裝 DKIM 的 milter.

下載這個 milter, 使用和 DomainKeys milter 一樣的方式安裝. 最後執行的參數與 dk-filter 有些不同. 如果要和 dk-filter 一起使用, 記得使用不同的 port 來執行即可.

比較詳細的英文安裝說明可以參考這兒

同樣, 在搭配 postfix 時, 注意這兒所提到的修改.

或是抓這個 patch 回去使用: 

diff -Nur dkim-milter-0.5.1.orig/dkim-filter/dkim-filter.c dkim-milter-0.5.1/dkim-filter/dkim-filter.c
--- dkim-milter-0.5.1.orig/dkim-filter/dkim-filter.c 2006-06-13 01:44:09.000000000 +0800
+++ dkim-milter-0.5.1/dkim-filter/dkim-filter.c 2006-08-22 08:43:07.375808454 +0800
@@ -2296,6 +2296,13 @@
dfc = cc->cctx_msg;
assert(dfc != NULL);

+ /* Determine the job ID for logging. */
+ if (dfc->mctx_jobid == 0 || strcmp(dfc->mctx_jobid, JOBIDUNKNOWN) == 0) {
+ char *jobid = smfi_getsymval(ctx, "i");
+ if (jobid != 0)
+ dfc->mctx_jobid = jobid;
+ }
+
/* get hostname; used in the X header and in new MIME boundaries */
hostname = smfi_getsymval(ctx, "j");
if (hostname == NULL)
@@ -3572,7 +3579,7 @@
(void) config_get(cfg, "DNSTimeout", &tmo);

if (become == NULL)
- (void) config_get(cfg, "Userid", &selector);
+ (void) config_get(cfg, "Userid", &become);

if (version == NULL)
(void) config_get(cfg, "Version", &version);
@@ -4535,7 +4542,7 @@
}

#if _FFR_SELECT_SIGN_HEADERS
- if (cf != NULL)
+ if (cfg != NULL)
(void) config_get(cfg, "SignHeaders", &signhdrs);
if (signhdrs != NULL)
{
 

在 0.5.1 版中, 有兩個小問題:

  1. 在 dkim-filter/dkim-filter.c 的 3575 行的那個 Userid 的變數應該是 become 才對. 如果不修改, 在使用設定檔時, 如果設定 Userid 這個參數, 反而變成去設定 Selector 這個參數.
  2. 如果有打開 FFR_SELECT_SIGN_HEADERS 支援時, 在 dkim-filter/dkim-filter.c 的 4538 行那個 cf 應該是 cfg 才對.

不過, 在我安裝之後, 雖然送出的信件都有含所應該產生的 header, 不過, 在前述那幾個測試的信箱中, 沒有一個認為那個是正確的值. 目前仍不知道為什麼. 不過, 由那幾個信箱回覆的信件中, 如果有 DKIM 的設定時, 在我的伺服器上頭, 倒是可以正常的判斷出來. 等有空或有出新版時, 再來試看看好了.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
迴響

  

Bad Behavior 已經阻擋了 158 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS