酷!學園

精華區 => 酷!學園 精華區 => 主題作者是: twu2 於 2006-04-17 19:49

主題: MySPAM, 我的廣告信管理程式
作者: twu22006-04-17 19:49
幾年前開始用 amavisd-new (http://www.ijs.si/software/amavisd/) 這個程式搭配 spamassassin (http://spamassassin.apache.org/index.html) 來做病毒與廣告信件的過濾, 效果還算不錯. 不過, 由於這是一個 server 端的 daemon 程式, 並不是針對每個使用者單獨執行的, 所以, 如果把廣告信擋住不送的話, 一般的使用者在得知被擋了那些信之後, 並沒有辦法可以把這個信件送出. 必須有系統管理員來處理. 所以, 如果要讓使用者知道那些信件被認為是廣告信的話, 就只能把這些信都寄給使用者. 而在檔頭或標題加上註記, 讓使用者自己去分辨. 而且, 使用者也沒有辦法設定自己的白名單, 只能使用系統本身的白名單. 所以, 搭配 maildrop, 我用 php 寫了這個程式, 用來解決這個問題.

(http://www.teatime.com.tw/~tommy/myspam/myspam.jpg)

程式的最後一個版本, 可以由這兒抓取: http://www.teatime.com.tw/~tommy/myspam/myspam.tgz

需求:

    * MySQL (http://www.mysql.com/), 你必須有一個 mysql 的資料庫, 最好是支援 UTF-8 的 4.1 之後的版本. (我的環境是 5.0.18 )
    * Web server (Apache (http://www.apache.org/)), 可以跑 PHP 就可以.
    * PHP (http://www.php.net/), 應該都可以執行才對, 確定要有 iconv 與 mysql 的支援. 除了 webserver 用的 module 外, 也要有 CLI 版本, 也就是在 console 執行的版本. (我的開發環境是在 PHP 5.1.2)
    * Smarty (http://smarty.php.net/) (我的環境版本是 2.6.3)
    * maildrop (http://www.courier-mta.org/maildrop/), 我用的是 1.5.3 版.
    * MTA, 當然了, 要用這個, 表示你應該早就有一個 mail server 了. (我用的是 postfix (http://www.postfix.org/) 2.2.10)

首先, 解開檔案後, 有個 db.sql 檔案. 裡頭有三個 table 的定義. 在 mysql 中執行這個 script, 產生那三個所需要的 table. 然後修改 web/index.php 有關資料庫的設定:
代碼: [選擇]
// 改成你使用的資料庫
$dbhost = 'your_db_host';
$dbuser = 'your_db_user';
$dbpass = 'your_db_password';
$dbname = 'your_db_name';

接著修改 smtp 與 pop3 的設定:
代碼: [選擇]
// smtp 伺服器的設定
$smtp_server = 'your_smtp_host';
$smtp_port = 25;
// pop3 伺服器的設定
$pop3_server = 'your_pop3_host';
$pop3_port = 110;

smarty 的路徑:
代碼: [選擇]
// 改成你的 smarty 存放的路徑
require_once('smarty/libs/Smarty.class.php');

其它的設定:
代碼: [選擇]
// 你的 email domain
$mydomain = 'your_domain_name';
// 你要使用的 MySPAM 的 URL
$spam_url = 'http://your_myspam_website';
// 使用者認為不是廣告信的信件, 要存放的路徑
$notspam_path = '/var/spool/myspam/notspam/';
// 每頁顯示的數量
$pagesize = 15;
// 資料保留的日數
$keep_days = 30;
// 轉碼除錯用, 如果不知道用來做什麼, 不要改成 true
$debug = false;


設定好後, 在你的 webserver 中, 設定一個 VirtualHost 或路徑, 指到 web 那個目錄 (請設定好使用 UTF-8 ), 然後打開你的 broswer, 連到你設定的 URL 上頭, 看看是否有看到登入的畫面. 然後輸入正確的使用者名稱與密碼 (程式使用 POP3 去檢查是否正確), 登入後, 應該就可以看到 MySPAM 的主畫面了. 如果看不到登入的畫面或看不到主畫面.... 我也不知道, 自己檢查看看 webserver, php, mysql 之間, 是否有問題吧.

在確定 Web 介面可以正常運作後, 就來設定 maildrop 吧. 修改 /etc/maildroprc 或者是某個使用者 HOME 下頭的 .mailfilter 檔案 (可以先用某個使用者來測試, 等運作成功後, 再改用 /etc/maildroprc, 讓全部的使用者都使用):
代碼: [選擇]
# Global maildrop filter file

# Uncomment this line to make maildrop default to ~/Maildir for
# delivery- this is where courier-imap (amongst others) will look.
DEFAULT="$HOME/Maildir"

if ( /^X-Spam-Flag: YES/:h )
{
if ( !( /^X-MySPAM: YES/:h ) && $SIZE < 20480000 )
{
        to "| /usr/bin/php -Cq /var/spool/myspam/web/index.php save_spam"
exit
}
}

其中, 那個 DEFAULT 如果不是使用 Maildir 格式的話, 請勿設定成上頭那個樣子 (不要設定應該就可以用一般的 unix mbox 格式). 注意你的 php 所在的路徑與 myspam 的 index.php 的路徑對不對.

接著,  更改你的 mail server 設定, 把 local 存檔的動作, 改用 maildrop 來執行. 以 postfix 來說, 就是改這個設定:
代碼: [選擇]
mailbox_command = /usr/bin/maildrop -d ${USER}
這樣子設定之後, 只要被 spamassassin 認定是廣告信的話, 在 header 上頭, 應該 X-Spam-Flag 就會被設為 YES. 這樣子, 信就會被這個 php 程式存到資料庫中, 而不會送給使用者了.
代碼: [選擇]
$sa_spam_modifies_subj = 0;
如果一切正常的話, 在你的 cron 每天選一個時間, 加上一個設定, 去執行 notify.sh 那個程式 (請修改裡頭的路徑), 這樣子每天就會把收到的廣告信列表寄給每個使用者. 使用者如果需要做自己白名單的設定, 也可以經由那個 web 介面來設定. (所有的設定都不分大小寫, 除了正規表示式外)

系統會把符合使用者白名單的信件, 直接寄給使用者, 而不放到資料庫中.

如果系統執行有問題, 會傳回 EX_TEMPFAIL, 你的 mail server 應該會把信放到 queue 裡頭, 過一段時間再重送.

最後, 記得每天執行一下這個指令, 把使用者認定該信不是廣告信的信件都學習一次:
代碼: [選擇]
# NOTSPAM
/usr/bin/sa-learn --ham \
        -p /var/lib/amavs/.spamassassin/user_prefs \
        /var/spool/myspam/notspam/*
rm -f /var/spool/myspam/notspam/*

本程式授權採 GPL. 本人不保證這個程式的任何運作結果. 任何因本程式所造成的問題, 本人概不負責. 要不要採用請自行決定.

如果有任何疑問, 請先學學 PHP, 最好能看懂程式在做些什麼, 然後再來討論吧.

本文同步發表於我的 blog: http://blog.teatime.com.tw/post/1/52
主題: 好文,建議放到精華區
作者: zxcvbn1012006-04-18 20:39
建議放到精華區
不然快掉到下一頁了
好可惜
主題: 遇到一個問題...
作者: mydarren2006-04-19 16:04
使用outlook寄信 big5 格式主旨為中文時  --> MySPAM 報表的"標題" 空白
使用outlook寄信 utf8 格式 主旨為中文時 --> MySPAM 報表的"標題" 中文OK
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-04-20 00:06
找一下 stristr 這個字串, 在 save.php 中.
把後頭的 if ($p == 0) 改成 if ($p) 試看看. (寫太快了, 把 stristr 當成 strcmp 用了...)

不過, 這個應該只影響到非 BIG5 與 UTF-8, 且未編碼的 email 才對.
至少在我這兒, 就算沒有正確由 Content-Type 中得到正確的編碼時, 內定就是會檢查是不是 UTF-8, 如果不是, 第一個嘗試轉碼的編碼就是 BIG5. 應該不會影響到才對. 因為我的環境中, 那些多數收到的 spam, 都是用 big5 編碼的, 也可以正確的讀出來.
主題: php 的 iconv 的問題
作者: mydarren2006-04-22 01:33
引述: "twu2"
找一下 stristr 這個字串, 在 save.php 中.
把後頭的 if ($p == 0) 改成 if ($p) 試看看. (寫太快了, 把 stristr 當成 strcmp 用了...)

不過, 這個應該只影響到非 BIG5 與 UTF-8, 且未編碼的 email 才對.
至少在我這兒, 就算沒有正確由 Content-Type 中得到正確的編碼時, 內定就是會檢查是不是 UTF-8, 如果不是, 第一個嘗試轉碼的編碼就是 BIG5. 應該不會影響到才對. 因為我的環境中, 那些多數收到的 spam, 都是用 big5 編碼的, 也可以正確的讀出來.



再次感謝~
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-04-30 15:47
MySPAM v0.0.2 推出, 與前一版的差異說明如下:
代碼: [選擇]
   ! 修正信件編碼的判斷. (錯誤使用 stristr() 的結果)
    ! 修正在使用 send_notify 與 save_spam 功能時, session 路徑可能無法寫入的問題.
    ! 修正樣版中沒有 <head> 的問題.
    ! 修正如果使用者沒有指定正確的 shell 時, 無法使用 maildroprc 的問題. (在 maildroprc 加上正確的 SHELL 變數)
    ! 移除 lang.php 中的 BOM 字元.
    = 把設定由 index.php 移到 config.php, 方便日後的升級.
    = 把所有的 log 改用 LOG_INFO 送出, 如果在 $debug 設為 true 時, 全部改用 LOG_DEBUG.
    = 在 send_notify 的記錄中加上每個使用者的筆數.
    + 新增說明的頁面.
    + 把符合規則的記錄存到資料庫中, 方便除錯.

程式可以由這兒抓取: http://www.teatime.com.tw/~tommy/myspam/myspam-0.0.2.tgz

或由這兒抓取最後一個版本: http://www.teatime.com.tw/~tommy/myspam/myspam.tgz
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-05-11 12:15
MySPAM v0.0.3 推出, 與前一版的差異說明如下:
代碼: [選擇]
   + 新增選取該頁所有信件的元件.
    = 更改資料的背景顏色, 由每列不同色改為每行不同色.
    + 更改被選取的信件的背景顏色.
    - 移除 testsave.php, 測試的功能直接改用 save.php, 以 $test_mode 變數來決定.
    + 加上 test_save_spam 參數, 方便檢查相關的 php 環境是否正常.
    + 加上 .htaccess


程式可以由這兒抓取: http://www.teatime.com.tw/~tommy/myspam/myspam-0.0.3.tgz

或由這兒抓取最後一個版本: http://www.teatime.com.tw/~tommy/myspam/myspam.tgz

主要的修改在於選取資料的時候,  顏色會有所改變, 方便分辨. 另外, 移除原本用於除錯的 testsave.php 這個檔案, 直接整合到 save.php 中. 如此, 在設定 maildrop 之前, 可以利用下面的指令, 把 test.msg 的內容讀取並寫入一筆資料到資料庫中, 用來檢查 php 的環境是否能夠正常執行本程式:
代碼: [選擇]
php -Cq index.php test_save_spam

執行的結果, 會顯示在畫面上, 並寫入 /tmp/debug.log 中.
主題: 滿專業的哦
作者: funky2006-05-23 18:26
用起來滿專業的,我用過中華數位的產品,有幾點建議可以提供,
1.可以多個"搜尋"的功能,因為信太多,需要依照主旨,寄件人,收件人,日期,時間等等方式去找較方便。

2.個人化設定可以多個自行設定"單頁顯示筆數"功能

3.可以再多個連結,連到所有信件的顯示,這樣不只可以看隔離區的信,還能把這台機器當成郵件備份機,搭配搜尋機制,可以存下好幾年的信哦。

4.可以多個欄位出來,標示該信件的判斷分數。

5.直接在每一封信件的最前面加三個欄位[取回][加入白名單][加入黑名單],只要點選該欄位,就自動做了該動作,並且在發送給 user 的通知信中也有這個連結功能,每一封收件者的信中的超連結,其實就已經帶了該帳號密碼在網址列中(已經加密過的),好處是 user 不需要一定要連上 web 才能做這三個動作。

目前個人覺得最不錯的功能是 unicode,如果能做到顯示所有信件的話,就可以看到一些在 webmail 看起來有問題的外文語系信件。
主題: 我在選單按重送時會發有亂馬產生
作者: cskp2006-05-30 18:43
Dear TWu2 大大你好我按照你的步驟安裝完成完成,只要是system認為spam都會有動作但是按你的管理程式上的重送鍵後mail 有收到只是看內容時會把不必要mail 李的編碼資料也顯示出現,請如何解決
另外我用maildrop時用你的設定檔沒有做用只會丟到個人mailbox上,我用procmail 來處理 :o
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-06-01 08:26
重送是把原本的信件送出來, 如果有問題, 應該是原本的信件就有問題吧.

maildrop, 我之前碰到一個問題, 有人的 maildrop.rc 是 dos format, 不是 unix format, 會造成條件永遠成立. 除此之外, 我是沒碰過不能用的情形.
主題: 感謝回答
作者: cskp2006-06-01 09:36
引述: "twu2"
重送是把原本的信件送出來, 如果有問題, 應該是原本的信件就有問題吧.

maildrop, 我之前碰到一個問題, 有人的 maildrop.rc 是 dos format, 不是 unix format, 會造成條件永遠成立. 除此之外, 我是沒碰過不能用的情形.

我回去試試看有問題我在跟您報告 :)
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-06-01 16:09
1.我是引用TWU2大大的MAILDROPRC這個設定檔但是好像沒有動作即使是SPAM STATUS:YES 還是送到同仁的MAILBOX理
2.而重送問題是我表答的意思為它把原本的MAIL送出來沒錯但是也把MAIL本身其他資訊也SHOW在在MAIL的單身上如下面表示
>>From edm@msx.epaper.com.tw  Tue May 30 18:36:02 2006
Return-Path: <edm@msx.epaper.com.tw>
X-Original-To: allen.mao@ipoxtech.com
Received: from mse.epaper.com.tw (mse.epaper.com.tw [211.20.188.84])
by ms1.ipoxtech.com (Postfix) with ESMTP id 603BADB50F0
for <allen.mao@ipoxtech.com>; Tue, 30 May 2006 18:35:54 +0800 (CST)
Received: from localhost (msa.epaper.com.tw [211.20.188.80])
by mse.epaper.com.tw (Postfix) with SMTP
id 9B1CB1CA25C02; Tue, 30 May 2006 18:37:45 +0800 (CST)
From: "=?big5?B?UENob21lwcqqq7ZXsNOo+rNm?=" <edm@msx.epaper.com.tw>
To: "=?big5?B?UENob21lwcqqq7ZXsNOo+rNm?=" <edm@msx.epaper.com.tw>
Date: Tue, 30 May 2006 17:00:00 +0800 (CST)
Subject:
=?big5?B?XKXNrKGmyrNmL6G5p0u2Tya2V6dDu/kzVyBMRUS7RaX6v0+hRML5pEikVKXzp8mlXaG
5Q1VCRUWwyqqrpliw27nO?=
X-EDM: 0018-026195 :rev_send
MIME-Version: 1.0
Content-Type: multipart/related;
        type="multipart/alternative";
        boundary="------=_epaper_f23d9c033f66845cb4c2a08180cdbf16"
Message-Id: <20060530103745.9B1CB1CA25C02@mse.epaper.com.tw>
X-ipoxtech.com-MailScanner-Information: Please contact the ISP for more
information
X-ipoxtech.com-MailScanner: Found to be clean
X-ipoxtech.com-MailScanner-SpamCheck: spam, SpamAssassin (score=5.351,
required 3, DNS_FROM_AHBL_RHSBL 0.07, EXTRA_MPART_TYPE 0.22,
HTML_90_100 0.19, HTML_MESSAGE 0.00, HTML_TAG_BALANCE_BODY 0.39,
MIME_BASE64_TEXT 0.11, MIME_HTML_MOSTLY 0.28,
MIME_MISSING_BOUNDARY 0.25, MPART_ALT_DIFF 1.50,
MSGID_FROM_MTA_ID 1.70, URIBL_SBL 0.63)
X-ipoxtech.com-MailScanner-SpamScore: sssss
X-ipoxtech.com-MailScanner-From: edm@msx.epaper.com.tw
X-Spam-Status: Yes

This is a multi-part message in MIME format.

--------=_epaper_f23d9c033f66845cb4c2a08180cdbf16
Content-Type: multipart/alternative;
        boundary="------=_epaper_3cbaf8d24d980832254b392b30dbc18f"


--------=_epaper_3cbaf8d24d980832254b392b30dbc18f
Content-Type: text/plain;
        charset="big5"
Content-Transfer-Encoding: base64

CgoK


--------=_epaper_f23d9c033f66845cb4c2a08180cdbf16--
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-06-02 14:15
你列出來那封信一定不是透過我的那個 php script 重送的 (除非你自己有改裡頭的程式), 因為並沒有包含那個 script 會加上的 header.

至於在你的系統為什麼不能用? 那我就不知道了. 要不就自己研究, 要不就找人做, 要不就放棄別用了吧.

反正程式都是公開的, 自己搞懂整個流程, 自然就會知到那兒出了問題了.
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-06-02 14:37
是否因為我沒有用MAILDROP方式IPUT到MYSQL上後面就不能RUN
主題: 我已經修改好嘞
作者: cskp2006-06-19 15:28
引述: "cskp"
是否因為我沒有用MAILDROP方式IPUT到MYSQL上後面就不能RUN

我現在改成用procmail 來代替maildrop
也可以使用twu2大大程式使用
代碼: [選擇]

#VERBOSE=yes
#LOGABSTRACT=all
#LOGFILE=/var/log/procmail.log

:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/myspamweb/index.php save_spam
}

:0b
* ^X-MySPAM: YES
$DEFAULT
主題: Re: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2006-07-18 13:02
引述: "twu2"

代碼: [選擇]
$sa_spam_modifies_subj = 0;


不知道上面這個是要加在那兒??
有那位前輩可以提示....
主題: Re: MySPAM, 我的廣告信管理程式
作者: twu22006-07-18 13:47
引述: "湯姆貓"
引述: "twu2"

代碼: [選擇]
$sa_spam_modifies_subj = 0;


不知道上面這個是要加在那兒??
有那位前輩可以提示....


amavisd-new 的設定檔.
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2006-07-18 14:46
了解~~~

因為我是用postfix+MailScanner+SpamAssassin+MailDrop+大大的MySPAM...
所以一直找不到設定這個的地方...

感溫啊~~~~
主題: MySPAM, 我的廣告信管理程式
作者: hsiao_peter2006-07-18 17:30
請問一下 Postfix 不是有一個maildrop的deamon 還要另外裝嗎?
又有什麼作用? 謝謝
!!
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-18 17:40
引述: "hsiao_peter"
請問一下 Postfix 不是有一個maildrop的deamon 還要另外裝嗎?
又有什麼作用? 謝謝
!!


也許你的 postfix 有特異功能吧. 一般人的 postfix 應該沒有這東西吧.
courier 才有包含 maildrop.
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2006-07-19 12:12
Jul 19 12:08:59 mail postfix/local[22140]: A8DBC9C0068: to=<fish@domainname.com.tw>, orig_to=<service@domainname.com.tw>, relay=local, delay=17, status=sent (delivered to command: /usr/local/bin/maildrop -d ${USER})

在maillog裡出現這個訊息(delivered to command: /usr/local/bin/maildrop -d ${USER})
是正常的嗎?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-19 12:24
沒錯啊. 前頭的 postfix 的設定本來就是把 local 的信, 透過 maildrop 來處理.
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2006-07-20 11:09
可能是我跟twu2前輩用的maildrop版本不同吧.
我是用2.0.2版本的,1.5.3的版本官網上已經沒有了.
試了很久...被標記的信件還是沒有進資料庫.

最後改用procmail處理,
現在看起來一切正常.

感恩啊~~~~
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-20 16:02
請問一下
1 在amavisd.conf的 $final_spam_destiny 一般要設那一種?
2 目前用maildrop來作,無法進db? 請問用procmail怎麼作?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-20 16:19
引述: "cch"
請問一下
1 在amavisd.conf的 $final_spam_destiny 一般要設那一種?
2 目前用maildrop來作,無法進db? 請問用procmail怎麼作?


1. D_PASS
2. 上頭有人有貼.
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-20 16:21
可以說明一下amavisd.conf在sa方面要設那些?才可以作到標記?(我的是2.4.2版)
謝謝!
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-21 11:44
有那位大大可以提供amavisd.conf的設定檔,參考一下
因為我的spam一直無法每封都scan ?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-25 17:38
http://www.infotram.net/myspam/

今天不小心發現有廠商把這功能整合到他們的產品中了... 希望他們能秉持 opensource 的精神, 如果有改進的地方, 也能夠分享出來. (不過... 依照台灣以往這類使用 GPL 程式弄出產品的廠商來看, 可能性似乎不高...)
主題: MySPAM, 我的廣告信管理程式
作者: 梁楓2006-07-25 19:46
有問題
他沒說程式出處
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-26 14:29
請問twu2大大,我在myspam003這版中沒有發現notify.sh這個file ?
請問我要如何去通知user有廣告信?
謝謝!
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-26 14:46
有個 send_notify.sh
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-26 15:03
我試著用send_notify.sh這個來發,結果造成無法收mail
出現File isn't in mbox format ?請問我要如何更改呢?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-26 15:32
不清楚. 那個 php 程式不會直接去動到信件檔. 它是透過正常的 smtp 的方式送信.
信件檔有問題? 那應該是你其他可能會去動到信件檔的程式有問題造成的吧.
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-26 15:34
會是procmail 嗎?
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-26 15:53
測試結果是procmail的問題,因為送的是html的語法?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-26 16:14
聽起來比較寄怪, 因為就算是送的是 html, 也是標準的信件格式. 不應該會有問題啊.
如果有問題, 表示其他同樣格式的信也有可能出問題吧.

或許是你的 procmail rule 設錯了吧.
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-27 10:51
我的procmailrc設定如下
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/myspam003/index.php save_spam
}

:0b
* ^X-MySPAM: YES
$DEFAULT

--------
在postfix下只改mailbox_command = /usr/local/bin/procmail
--------
 目前測試收發mail是正常的,但當我執行 send_notify.sh後有收到notify的user,其mailbox的檔案會有大大所要show的html,因開頭不是以from:xxxx 所以user就無法收信??怪
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-27 12:18
mailbo的檔案會變成:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-TW" lang="zh-TW" dir="ltr">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"  />
  <meta http-equiv="ontent-Language" content="zh-TW" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <title>MySPAM v0.0.3</title>
  <style type="text/css">
<!--

    th  {
        color: #FFA34F; font-size: 11px; font-weight : bold;
        background-color: #006699; height: 25px;
    }

    body {
...............

不是正規的mail文件??不知有何想法或debug的方法?
謝謝!!
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-27 12:41
簡單的說就是表頭不見了????怪?
主題: MySPAM, 我的廣告信管理程式
作者: shadowy2006-07-27 17:09
我用cskp的
用來改成用procmail 來代替maildrop 的範例
沒有辦法使用, 不知道是版本的不同還是怎樣
要嘛這段正常
|/usr/bin/php -Cq /var/www/html/index.php save_spam
要嘛這段正常
$HOME/spam
好像只會擇一處理

我稍微改了一下終於正常了
主要是先複製一份再做處理
應該...沒錯吧...

DROPPRIVS=yes
:0fw
| /usr/bin/spamc

:0
* ^X-Spam-Status: Yes
{
:0 c
|/usr/bin/php -Cq /var/www/html/index.php save_spam

:0:
* ! ^X-MySPAM: YES
$HOME/spam
}

:0b
* ^X-MySpam: Yes
$DEFAULT
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-27 17:17
請問一下為何程式中有加X-MySPAM: YES ?
為了判斷嗎?
我把
0b
* ^X-MySpam: Yes
$DEFAULT

給拿掉也可以正常?
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-28 11:27
最後終於正常了..
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/myspam003/index.php save_spam
}
:0b           #要重發spam內的mail時,必須有b flag
* ^X-Spam-Flag: YES
$DEFAULT

:0            #啟用notify.sh時,則不用b flag
* ^X-MySPAM: YES
$DEFAULT

老實說之間的差異我不了解???希望有人能說明一下!
謝謝!
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-28 11:39
不懂 procmail, 所以不知道有什麼差異. 反正那兒的處理邏輯是:

1. 只要有 X-MySPAM: YES, 就表示這封信由 MySPAM 所送出, 可能是使用者決定重送, 或者是通知信. 所以不用再送給 MySPAM 去儲存.
2. 非上述情形, 只要有 X-Spam-Status: Yes, 就送給 MySPAM 去儲存.
3. 其它的信直接送到信箱.
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-28 14:49
目前大致ok
但我看log時,發現:
PHP Notice:  Use of undefined constant QP_decode - assumed 'QP_decode' in /var/www/html/myspam003/save.php on line 296
PHP Notice:  iconv(): Detected illegal character in input string in /var/www/html/myspam003/save.php on line 269

不知是何原因?
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-07-28 14:56
引述: "cch"
目前大致ok
但我看log時,發現:
PHP Notice:  Use of undefined constant QP_decode - assumed 'QP_decode' in /var/www/html/myspam003/save.php on line 296
PHP Notice:  iconv(): Detected illegal character in input string in /var/www/html/myspam003/save.php on line 269

不知是何原因?


1. 把那個 callback 的 function, 那個 QP_decode 前後加上引號吧. (難道我最近都沒收過 QP encode 的信嗎? 怎麼沒有印象有看到這類的信沒有被正確解讀的...)

2. 在 iconv 轉碼的地方, 是用 "試" 的方式去轉碼, 所以有不成功時, php 會有那個訊息. 可以忽略或自己在 iconv() 前頭加上 @ 改成 @iconv() 試看看吧.
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-07-28 15:21
感謝...果然沒有此notify了...
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-08-01 20:36
引述: "cch"
會是procmail 嗎?

不是procmail ,因為我就沒有問題
主題: MySPAM, 我的廣告信管理程式
作者: cch2006-08-03 14:57
引述: "cskp"
引述: "cch"
會是procmail 嗎?

不是procmail ,因為我就沒有問題


那你有何想法???
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-08-03 15:13
目前大致ok
但我看log時,發現:
PHP Warning:  Unknown: open(/var/lib/php/session/sess_fejdt4v7bjjkd0bqlu3t65kgc3, O_RDWR) failed: Permission denied (13) in Unknown on line 0
PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in Unknown on line 0
不知是何原因?
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-08-03 15:19
引述: "cch"
引述: "cskp"
引述: "cch"
會是procmail 嗎?

不是procmail ,因為我就沒有問題


那你有何想法???

你是否outlook有把html解意功能啟用
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-08-03 15:31
引述: "cskp"
目前大致ok
但我看log時,發現:
PHP Warning:  Unknown: open(/var/lib/php/session/sess_fejdt4v7bjjkd0bqlu3t65kgc3, O_RDWR) failed: Permission denied (13) in Unknown on line 0


執行 send_notify.sh 這個 script 的使用者沒有寫入 session 路徑的權限.
可以忽略, 反正那個動作不會用到 session.

或者改用有寫入該路徑權限的使用者執行那個 script.
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-08-09 11:08
謝謝twu2大大回復,我已經修正好了後又發現另外問題如下:
PHP Notice:  Undefined variable: argc n /var/www/html/myspamweb/index.php on line 20
 [error] [client 192.168.1.1] PHP Notice:  Undefined variable: argc in /var/www/html/myspamweb/index.php on line 27
[Wed Aug 09 10:52:08 2006] [error] [client 192.168.1.1] PHP Notice:  Undefined variable: argc in /var/www/html/myspamweb/index.php on line 35
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-08-09 11:22
http://www.php.net/manual/en/ini.core.php#ini.register-argc-argv
上頭這個設為 true.
或者自己在前頭加上
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];
主題: MySPAM, 我的廣告信管理程式
作者: cskp2006-08-10 11:05
引述: "twu2"
http://www.php.net/manual/en/ini.core.php#ini.register-argc-argv
上頭這個設為 true.
或者自己在前頭加上
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];

我已經修改嘞php.ini後重新開機後執行程式後還是有error :(
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-08-10 11:18
那我就不知道為什麼你的 php 版本會沒有 $argc 了. 也許你改的 php.ini 不是你的 web server 用的版本...

不然就自己加上那兩行, 自行由 $_SERVER 來設定 $argc, $argv.
主題: MySPAM, 我的廣告信管理程式
作者: 小張張2006-11-03 16:36
小弟有在這個版本加上搜尋的小功能
只是不知道檔案要怎麼上傳
哪位大大幫幫我好嗎....
不過程式寫的不怎樣就是了
主題: MySPAM, 我的廣告信管理程式
作者: twu22006-11-03 17:09
如果改動不大, 看能不能貼上來看看.
或者把 diff/patch 或整個 email 給我看看.
(http://www.teatime.com.tw/~tommy/images/gmail_small.png)
主題: MySPAM, 我的廣告信管理程式
作者: 小張張2006-11-03 20:07
程式已寄出,請查收並請用力指教....呵呵
主題: MySPAM, 我的廣告信管理程式
作者: ArthurWei2006-12-11 21:44
請問一下?
1. 0.03版中附的cleanup.sh作用是什麼呢?
清Log還是清Spam mail?

2. 在MySQL中的spam mail 可以用shell script 的方式找出14天前的record,並刪除,不知直接刪除資料庫有何影響嗎?
主題: MySPAM, 我的廣告信管理程式
作者: ArthurWei2006-12-12 10:43
更正
2. 在send notice時就會刪除了。
主題: MySPAM, 我的廣告信管理程式
作者: unitnet2007-01-15 22:56
請問一下?
mysql 沒有BOOLEAN 選項 ??? Help
主題: MySPAM, 我的廣告信管理程式
作者: Ada2007-01-17 10:51
引述: "梁楓"
有問題
他沒說程式出處


到現在似乎仍未說明程式出處,沒有反制的方法嗎?
主題: MySPAM, 我的廣告信管理程式
作者: unitnet2007-01-26 14:46
Please help!!!

When I exec "send_notify.sh", I got the following error message. How can I do??????????????


<b>Warning</b>:  Smarty error: unable to read resource: "login.tpl" in <b>/usr/local/lib/php/Smarty/Smarty.class.php</b> on line <b>1095</b><br />
主題: MySPAM, 我的廣告信管理程式
作者: twu22007-06-11 10:01
轉自 http://blog.teatime.com.tw/1/post/246

MySPAM v0.0.4a 推出, 其實早在半年多前, 小張張就把他做的搜尋功能 (http://phorum.study-area.org/viewtopic.php?p=214341#214341)給我了, 不過... 我一直懶的去動, 直到昨天有人問我這件事... 才動手改了一下.

與前一版的差異說明如下:

    * ! 修正某些信件, 會標明使用 iso-8859-1 的編碼, 但裡頭不是英文. 造成解碼後的字串仍是亂碼. (目前針對 iso-8859-1, 如果不是英文字串, 會忽略這個編碼, 再嘗試用其他編碼去解碼.)
    * ! 修正 QP 編碼的處理.
    * ! 修正 iconv 錯誤的警告.
    * + 新增搜尋的功能. (感謝 小張張 http://phorum.study-area.org/profile.php?mode=viewprofile&u=756 提供)
    * ! 修正在 register_globals 為 on 的時候 (不建議使用), 無法正常使用的問題. (在程式一開始, 會先 unset $username, $password 兩個變數, 以避免在 register_globals 為 on 時, 誤用這兩個值.)


程式可以由這兒抓取: http://www.teatime.com.tw/~tommy/myspam/myspam-0.0.4a.tgz
或由這兒抓取最後一個版本: http://www.teatime.com.tw/~tommy/myspam/myspam.tgz
0.0.3 to 0.0.4a 的 patch: http://www.teatime.com.tw/~tommy/myspam/myspam_003_to_004a.patch

MySPAM 的說明請參考: MySPAM, 我的廣告信管理程式 (http://blog.teatime.com.tw/1/post/52)
主題: 問題回報:
作者: mydarren2007-06-11 13:21
更新到 MySPAM v0.0.4 發現 username 抓不到了

正常 login 後會出現如下
darren 的廣告信

現在無法出現如下 , 使用者名稱不見了
的廣告信


php 版本 4.4.xx 使用 MySPAM v0.0.3 一切正常
主題: MySPAM, 我的廣告信管理程式
作者: twu22007-06-11 14:52
0.0.4 跟 0.0.4a 的差異只在於 0.0.4a 可以在 register_globals on 的時候使用, 並且會把 $username, $password 在使用前都先清除, 再讀取 $_POST 裡頭的變數, 以避免直接使用時, 造成程式運作不正常. 也避免別人傳入這個變數就可以使用這個系統. 使用之前的版本, 且有把 register_globals 設為 on 的使用者, 請儘速升級到這個版本, 以避開這個安全性的問題. 不過.... 我還是認為, 應該是把 register_globals 關了才是正確的解決方法.
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 18:25
有人遇到這個問題嗎??

升級至0.0.4a後,
重送信件,
會收到未解碼的信.....

像這樣的.....
>From payment@msts.com.tw  Tue Jul 17 10:37:26 2007
Return-Path: <payment@msts.com.tw>
X-Original-To: tommy@abc.com.tw
Received: from esafe.com.tw (59-124-43-178.HINET-IP.hinet.net [59.124.43.178])
    by mail.abc.com.tw (Postfix) with ESMTP id 697BB9C00F3
    for <tommy@abc.com.tw>; Tue, 17 Jul 2007 10:37:18 +0800 (CST)
Received: from suntechweb [192.168.1.99] by esafe.com.tw with ESMTP
 (SMTPD-8.20) id AB4B02E4; Tue, 17 Jul 2007 10:36:59 +0800
以下省略

看起來像是信件的完全表頭跟內容,
在Openwebmail裡沒有被正確解碼.

我嚐試直接下載twu2大的0.0.4a解開後,
將先前升級過的config.php拷過去使用...
結果連登入面都變成空白頁....@@"
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 18:30
From tommy@abc.com.tw  Fri Jul 20 18:10:12 2007
Return-Path: <tommy@abc.com.tw>
X-Original-To: tommy@abc.com.tw
Delivered-To: tommy@abc.com.tw
Received: from abc.com.tw (localhost.localdomain [127.0.0.1])
    by mail.abc.com.tw (Postfix) with ESMTP id F12A29C00A8
    for <tommy@abc.com.tw>; Fri, 20 Jul 2007 18:10:11 +0800 (CST)
X-MySPAM: YES
Message-Id: <20070720101011.F12A29C00A8@mail.abc.com.tw>
Date: Fri, 20 Jul 2007 18:10:11 +0800 (CST)
From: tommy@abc.com.tw
To: undisclosed-recipients:;
X-yoursite-MailScanner-Information: Please contact the ISP for more information
X-yoursite-MailScanner: Found to be clean
X-yoursite-MailScanner-From: tommy@matchbank.com.tw
X-Spam-Status: No
Status: R

這個是上面那封信的完全表頭,
也就是上面的完全表頭加上
>From payment@msts.com.tw Tue Jul 17 10:37:26 2007
Return-Path: <payment@msts.com.tw>
X-Original-To: tommy@abc.com.tw
Received: from esafe.com.tw (59-124-43-178.HINET-IP.hinet.net [59.124.43.178])
by mail.abc.com.tw (Postfix) with ESMTP id 697BB9C00F3
for <tommy@abc.com.tw>; Tue, 17 Jul 2007 10:37:18 +0800 (CST)
Received: from suntechweb [192.168.1.99] by esafe.com.tw with ESMTP
(SMTPD-8.20) id AB4B02E4; Tue, 17 Jul 2007 10:36:59 +0800
以下省略

就是整封信件的完全內容.....
主題: MySPAM, 我的廣告信管理程式
作者: twu22007-07-20 19:17
剛剛試著重送一封看看, 並沒有這個問題.
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 22:12
感謝twu2回覆...

我在sendmail.php這支程式中的第80行

$lines = explode("\n", $data);

前面直接 echo $data;
有看到信件的內容

From payment@msts.com.tw Tue Jul 17 10:37:26 2007
以下省略

但是在重送後,
內容前面卻加了個>符號

>From payment@msts.com.tw Tue Jul 17 10:37:26 2007
以下省略

總覺得好像已經跟MySPAM無關了.....
變成可能是postfix或是MailScanner變更了內容...

真是頭大~~~~

以前的那個版本,我有曾試過重送是沒問題的....
twu2大還有舊版的MySPAM嗎??
可以讓我下載嗎......
 :oops:
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 22:24
不好意思....
twu2大~~~

我解決問題了.....

在sendmail.php裡的第79及80行,
原本是
fputs($smtp, "X-MySPAM: YES\n");
$lines = explode("\n", $data);
我改成
fputs($smtp, "X-MySPAM: YES\n ");
                                              ^-----這兒多個空白
$lines = explode("\n", $data);

就解決了......

為什麼會這樣......我也不知道......@@"
再次感謝twu2大~~~
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 22:25
fputs($smtp, "X-MySPAM: YES\n ");
           ^-----這兒多個空白
$lines = explode("\n", $data);

怪了...怎麼不能編輯原先Post的.....
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-07-20 22:27
fputs($smtp, "X-MySPAM: YES\n ");
YES\n的後面多一個空白
$lines = explode("\n", $data);

@@"
主題: MySPAM, 我的廣告信管理程式
作者: twu22007-07-21 08:38
照說 header 的第一個字元是空白, 應該表示是與上一行的 header 欄位的延續.
這樣應該是導致原本信件的第一行的 header 欄位變不見.

而你的原始信件, 第一行是 From xxx, 看起來並不是標準的信件 header (非 xxxx: xxx 的型式?), 也許是造成這個問題的原因吧.

我以前好像也看過 postfix 產生這類的信件, 不過在我目前的環境中, 用 postfix 寄出的信件, 第一行並不是 From xxxx, 而是 Return-Path: 這個 header.

你的改法對一般正常的信件, 可能反而會少了一個 header.

這個與 MySPAM 的版本應該沒什麼關係... 因為之前的版本這部份也是一樣的.
也許檢查原始信件的第一行, 如果不是正常的 header, 而是 from xxxx 之類的東西, 就把這行忽略掉吧.
主題: 有一個問題請教一下twu2大大
作者: cskp2007-09-05 09:30
目前我把myspam有關垃圾信通知程式的時間社設在12:30, 13:30後運作一段時間發現好像當垃圾信通知信執行時發生user在收發信時無法收到別人在寄信給他的信,請問如何處理 :o
主題: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2007-09-05 10:52
那你先停掉廣告信通知的這支程式,
系統就正常了嗎???

因為twu2大的程式並不會去影響系統原有的發信機制,
建議你先停掉那支通知程式來觀察.
主題: MySPAM, 我的廣告信管理程式
作者: cskp2007-09-06 09:39
那我試看看
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2007-12-25 09:40
各位好:
請問一下此程式所需要的架構是Postfix+Clamav+MailDrop嗎?如果我是用Postfix+F-Port+MailScanner+MailDrop可以使用嗎?該如何設定?昨天試了一下,結果不成功,還有一點是在郵件規則應該可以自訂以什麼欄位做為篩選(例如從什麼地方寄來的),但是我的無法設定,我只能設定單一規則,請問有人遇到相同問題嗎? ???
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: z277227722008-01-08 14:51
這個與 MySPAM 的版本應該沒什麼關係... 因為之前的版本這部份也是一樣的.
也許檢查原始信件的第一行, 如果不是正常的 header, 而是 from xxxx 之類的東西, 就把這行忽略掉吧.

我跟湯姆貓大大有同樣的問題,
信件重送後, 會多出 "> "
>From payment@msts.com.tw Tue Jul 17 10:37:26 2007

依twu2前輩的說法, 修改 sendmail.php 過濾第一行是  from xxxx 後, 已正常.
只是小弟不會PHP語法, 經過了4~5小時努力之後才改好,
但是不知道這樣的改法是否會有問題, 有沒有更好的寫法, 請大家指導, 謝謝!!

修改 sendmail.php 第81行
原程式碼
    foreach ($lines as $line) {
        if ($line == '') {
            $header = 0;
        }
        if ($header) {
            // avoid loop erro for postfix
            if (strncasecmp('Delivered-To:', $line, 13) == 0) continue;
        }
        if ($line == '.')
            fputs($smtp, "..\n");
        else
            fputs($smtp, $line."\n");
    }

改成
  foreach ($lines as $key=>$line) {
        if ($key == 0) {
           $pos = strpos($line, "From ");
           if ($pos >= 0) {
              continue;
           }
        }

        if ($line == '') {
            $header = 0;
        }
        if ($header) {
            // avoid loop erro for postfix
            if (strncasecmp('Delivered-To:', $line, 13) == 0) continue;
        }
        if ($line == '.')
            fputs($smtp, "..\n");
        else
            fputs($smtp, $line."\n");
    }

主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-17 15:44
請問twu2 前輩是不是不能用MailScanner呢?如果可以的話要怎麼設呢?因為我設定好喔?卻無法用漲號密碼登入!
有出現網頁了!但是在http的error_log卻出現 Undefined index:  argv in /home/myspam/public_html/index.php on line 22, referer: http://192.168.0.221/myspam/index.php訊息!這是啥問題呢?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2008-01-17 17:19
http://www.php.net/manual/en/ini.core.php#ini.register-argc-argv
上頭這個設為 true.
或者自己在前頭加上
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];

@@"在同一則討論裡耶.....同學....你真的有用心看嗎??在第二頁.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-01-17 17:29
如果你不是網管, 去問你的網管為什麼你的 php 沒有 $argv 或 $_SERVER['argv'] 變數吧.
如果你就是網管.... 那是看一下 php.ini 的內容, 找看看裡頭的設定那個跟這個有關吧. 如果找不到... 去 php.net 慢慢查文件吧.

PS. 其實我也不清楚是那一個設定造成的, 實在沒用過沒有 $_SERVER['argv'] 的 php 系統.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-17 17:29

湯姆貓 前輩我不夠用心我自己罰站去!對不起!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-17 22:39
恕刪.................
twu2前輩我的網頁也已經出現spam的網頁也在config.php設定好帳號密碼了!我看access_log也沒有出現上面的錯誤訊息了!但是還是無法登入說!請twu2前輩指點小第一下我那裡出了問題??
twu2前輩是我豬頭我這次去提水桶罰站!終於可以了!感謝各位前輩的提點!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-21 09:39
twu2 前輩又跟您打擾了!我的主機已經架好了!有個疑問想跟您問一下!就是說目前我還在內部ip還沒有放上正式ip所以自然也沒有用dns
但是我要進入myspam網頁有時候用user可以進入無法進入是都會寫帳號密碼錯誤或郵件伺服器未開啟!是否是因為我還沒用dns的關係呢?我看http的error_log也已經沒有上述的錯誤訊息了!我的版本是Fedora7+postfix+MailScanner+clamav+procmailrc+vispam+myspam!
也確定mail 的25port及110port都有開啟了但是想測試可不可以進入帳號密碼卻都有時候無法進入!error_log也無錯誤訊息!


主題: 回覆: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2008-01-21 11:45
你可以先用本機的hosts檔案(Windows在windows\system32\drivers\etc目錄中,Linux在/etc目錄中)
設定該MySPAM主機的IP,
然後用domain的方式去開瀏覽器試.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-01-21 14:11
我跟湯姆貓大大有同樣的問題,
信件重送後, 會多出 "> "
>From payment@msts.com.tw Tue Jul 17 10:37:26 2007

依twu2前輩的說法, 修改 sendmail.php 過濾第一行是  from xxxx 後, 已正常.

不應該是去改 sendmail.php, 這部份只是用標準的 SMTP 去寄信. 只要源頭沒有問題, 這兒就不會有問題.

修改 save.php, 在 74 行左右, 開始讀取信件內容的部份, 原本應該是:
代碼: [選擇]
    $aHeader = array();
    $cnt = 0;
    while (feof($fp) == 0) {
        $buf = fgets($fp, 4096);
        if ($body) {
            $content .= $buf;
            continue;
        }
        if (strncasecmp('Delivered-To:', $buf, 13) == 0) continue;

改成:
代碼: [選擇]
    $aHeader = array();
    $cnt = 0;
    $first = true;
    while (feof($fp) == 0) {
        $buf = fgets($fp, 4096);
        if ($first) {
            $first = false;
            if (strncasecmp('From ', $buf, 5) == 0) continue;
        }
        if ($body) {
            $content .= $buf;
            continue;
        }
        if (strncasecmp('Delivered-To:', $buf, 13) == 0) continue;

這樣應該就不會把第一行的 'From ' 存起來, 再次寄出時就不會有問題了.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-21 14:27
你可以先用本機的hosts檔案(Windows在windows\system32\drivers\etc目錄中,Linux在/etc目錄中)
設定該MySPAM主機的IP,
然後用domain的方式去開瀏覽器試.
好的我試試!感謝前輩指點
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-01-21 14:31
如果同一個 server 有多個 domain, 登入時是使用 user@domain 方式的話, 據反應似乎只有在發送 notfiy email 時會有問題.
可以在 notify.php 中檢查 $user 有包含 @ 時, 就不要再加上 domain. 在 85 行那兒, 把
代碼: [選擇]
$to = "$user@$mydomain";改成
代碼: [選擇]
if (strstr($user, '@'))
    $to = $user;
else
    $to = "$user@$mydomain";
就應該可以了.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: moveboy2008-01-21 14:51
你可以先用本機的hosts檔案(Windows在windows\system32\drivers\etc目錄中,Linux在/etc目錄中)
設定該MySPAM主機的IP,
然後用domain的方式去開瀏覽器試.
好奇怪我又確定了一下doamin還是這樣說!我確信寄信沒問題!因為有寄到yahoo是可以寄信的!但是pop3我只有試user寄user
也是正常!但是要登入myspam又有時候正常大部份不正常比較多!但是又有試很多次可能有一次正常!訊息也沒啥錯誤訊息!搞不懂了說!
看起來不太像是domain的問題的感覺!還是前輩可否進來幫我看機器呢?如果您不忙的話啦!請指點一下小弟迷津!感謝前輩的指點了!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-01-22 09:11
如果同一個 server 有多個 domain, 登入時是使用 user@domain 方式的話, 在重送信件的部份也會有點問題.
修改 sendmail.php 中第 42 行開始的部份
原本是:
代碼: [選擇]
    fputs($smtp, "MAIL FROM:<$username@$mydomain>\n");
    // server response
    while (1) {
        $msg = fgets($smtp, 256);
        if (substr($msg, 0, 3) != "250") {
            fclose($smtp);
            return 0;
        }
        if (substr($msg, 3, 1) != "-") break;
        // multi-line response
    }

    fputs($smtp, "RCPT TO:<$username@$mydomain>\n");
    // server response
    while (1) {

改為:
代碼: [選擇]
    if (strstr($username, '@'))
        $myemail = $username;
    else
        $myemail = $username.'@'.$mydomain;
    fputs($smtp, "MAIL FROM:<$myemail>\n");
    // server response
    while (1) {
        $msg = fgets($smtp, 256);
        if (substr($msg, 0, 3) != "250") {
            fclose($smtp);
            return 0;
        }
        if (substr($msg, 3, 1) != "-") break;
        // multi-line response
    }

    fputs($smtp, "RCPT TO:<$myemail>\n");
    // server response
    while (1) {

另外, 登入 myspam 時, 記得也使用 user@domain 當做帳號, 不要只用 user 當帳號, 這樣才看的到內容.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: degit2008-03-25 09:22
各位學長,大家好

本人使用了postfix+spamassassin+procmail設定完成後
登入myspam介面,/var/log/mail會有錯誤訊息

代碼: [選擇]
mac at 59-xxx-xxx-xxx.HINET-IP.hinet.net (59.xxx.xxx.xxx): -ERR POP EOF or I/O Error [popper.c:845]
Mar 25 09:10:18 mail popper[3911]: Stats: mac 0 0 0 0 59-xxx-xxx-xxx.HINET-IP.hinet.net 59.xxx.xxx.xxx [pop_updt.c:301]
Mar 25 09:10:18 mail popper[3911]: I/O error flushing output to client mac at 59-xxx-xxx-xxx.HINET-IP.hinet.net [59.xxx.xxx.xxx]: Operation not permitted (1) [pop_send.c:693]

請問各位學長,不知道誰有遇到這各情況呢?謝謝~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-08-06 13:55
MySPAM v0.0.5 推出. 其實也沒改到什麼, 這些修正好像都至少有半年了 (應該也都在這串上頭找的到). 與前一版本的差異如下:

    * + 新增對同一主機多網域帳號的支援. 登入時請使用 user@domain 的方式登入即可.
    * ! 檢查信件第一行是否為 'From xxx@xxx.xxx.xx' 這個非 header 的內容 (某些 postfix 有這行?), 如有就略過.
    * ! 如果沒有 SIZE 環境變數, 就自行計算信件大小.

程式可以由這兒抓取: http://www.teatime.com.tw/~tommy/myspam/myspam-0.0.5.tgz
或由這兒抓取最後一個版本: http://www.teatime.com.tw/~tommy/myspam/myspam.tgz
0.0.4a to 0.0.5 的 patch: http://www.teatime.com.tw/~tommy/myspam/myspam_004a_to_005.patch 
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: 湯姆貓2008-08-06 15:25
Dear twu2~~~

新版0.0.5的程式.
web/save.php裡的第79及80行.

        $buf = fgets($fp, 4096);
        if ($size == 0) $size_cnt += strlen(buf);

第80行的 strlen(buf); 是正確嗎??
還是 strlen($buf);
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-08-06 15:43
sorry,  應該是 $buf 才對. 在我這兒沒執行到這兒過.
檔案我重新壓過一次了, 已經抓的就自己改一下吧, 之後抓的應該沒有這個問題了.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: hsiao_peter2008-08-06 17:57
我安裝myspam 後  嘗試連接 出現錯誤

Warning: main(smarty/libs/Smarty.class.php): failed to open stream: No such file or directory in /var/www/html/myspam/web/index.php on line 5

Fatal error: main(): Failed opening required 'smarty/libs/Smarty.class.php' (include_path='.:/usr/lib/php/:/usr/share/pear/') in /var/www/html/myspam/web/index.php on line 5


主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-08-06 18:03
沒裝 smarty 吧. 或者你的 smarty 不在上頭那個路徑下. 找一下 Smarty.class.php 放那兒吧, 自己改一下路徑吧.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: hsiao_peter2008-08-07 15:46
我找過了 是沒裝
找了 rpm search 只找到      Smarty-2.6.18-2.noarch.rpm    Info available.    PLD
我的distribution 是Mandrakelinux release 10.2 (Limited Edition 2005) for i586
Kernel 2.6.11-6mdk on an i686 /
需要自己編譯嗎 去哪下載?
謝謝!!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: 日京三子2008-08-07 15:57
我找過了 是沒裝
找了 rpm search 只找到      Smarty-2.6.18-2.noarch.rpm    Info available.    PLD
我的distribution 是Mandrakelinux release 10.2 (Limited Edition 2005) for i586
Kernel 2.6.11-6mdk on an i686 /
需要自己編譯嗎 去哪下載?
謝謝!!

如果是 smarty 有問題,請參考:

http://blog.roodo.com/jaceju/archives/175925.html
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: Yamaka2008-08-07 16:17
我找過了 是沒裝
找了 rpm search 只找到      Smarty-2.6.18-2.noarch.rpm    Info available.    PLD
我的distribution 是Mandrakelinux release 10.2 (Limited Edition 2005) for i586
Kernel 2.6.11-6mdk on an i686 /
需要自己編譯嗎 去哪下載?
謝謝!!

Smarty 不用編譯啊~~

http://www.smarty.net/

抓回來解到你的路徑下就可以了
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: hsiao_peter2008-08-07 18:36
謝謝大家
我裝了 還是連不上
---------------------
[root@ns1 myspam]# pwd
/var/www/html/myspam
[root@ns1 myspam]# ls -al smarty/libs/Smarty.class.php
-rw-rw-r--  1 peter users 63249  3¤ë  8  2007 smarty/libs/Smarty.class.php
-------------------

主題: 回覆: MySPAM, 我的廣告信管理程
作者: yoww2008-08-08 09:56
我是土法煉鋼的配置Smarty
引用
7.移動Smarty程式
將解開的libs目錄移動到 /var/www/html/myspam/web/libs
將解開的misc目錄移動到 /var/www/html/myspam/web/misc

8.配置Smarty環境

mkdir /var/www/html/myspam/web/configs
mkdir /var/www/html/myspam/web/cache
mkdir /var/www/html/myspam/web/templates
mkdir /var/www/html/myspam/web/templates_c
mkdir /var/spool/myspam/notspam/

chmod -R 700 /var/www/html/myspam/web/configs
chmod -R 700 /var/www/html/myspam/web/cache
chmod -R 700 /var/www/html/myspam/web/templates
chmod -R 700 /var/www/html/myspam/web/templates_c

chown nobody:nobody /var/www/html/myspam/web/templates_c


將web下*.tpl檔案移到/templates下

cp /var/www/html/myspam/web/*.tpl /var/www/html/myspam/web/templates/

可參考看看我的作法 郵件伺服器 Part-6:MySPAM (http://i-yow.blogspot.com/2008/08/part-6myspam-part-5openwebmail-centos-5.html)
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: lingping2008-09-19 14:09
多谢yoww,写得非常详尽;

但在使用myspam时,还是有点问题,点击“自订规则”时,程序会自动退出返回到登陆画面;

另外,由于是测试环境,没有类似的邮件跑到myspam下,目前myspam下都是空的;
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-09-19 15:55
只有點選 "自訂規則" 才會回到登入的畫面?
以程式看起來, 似乎應該只有在 session 不能用的時候才會回到那個畫面. 且應該不管點那個功能都會回到那畫面.
主題: 回覆: 回覆: MySPAM, 我的廣告信管理程
作者: jaymsa2008-10-14 16:16
我是土法煉鋼的配置Smarty
引用
7.移動Smarty程式
將解開的libs目錄移動到 /var/www/html/myspam/web/libs
將解開的misc目錄移動到 /var/www/html/myspam/web/misc

8.配置Smarty環境

mkdir /var/www/html/myspam/web/configs
mkdir /var/www/html/myspam/web/cache
mkdir /var/www/html/myspam/web/templates
mkdir /var/www/html/myspam/web/templates_c
mkdir /var/spool/myspam/notspam/

chmod -R 700 /var/www/html/myspam/web/configs
chmod -R 700 /var/www/html/myspam/web/cache
chmod -R 700 /var/www/html/myspam/web/templates
chmod -R 700 /var/www/html/myspam/web/templates_c

chown nobody:nobody /var/www/html/myspam/web/templates_c


將web下*.tpl檔案移到/templates下

cp /var/www/html/myspam/web/*.tpl /var/www/html/myspam/web/templates/

可參考看看我的作法 郵件伺服器 Part-6:MySPAM (http://i-yow.blogspot.com/2008/08/part-6myspam-part-5openwebmail-centos-5.html)

各位好:
我依照此篇的教學完成MailServer的建製,不過有幾點問題想請教:
1.小弟發現用mailwatch去看收信,會發現同樣的信件在mailwatch上出現兩次,感覺上是被送了兩次,在未設定myspam是正常的.
2.小弟登入myspam想解開被封鎖的郵件,按重送,但信件還是在(不知道是否是正常現象),且到收件夾去看,並沒有發現郵件被釋放,非廣告信的部分也一樣,請問這是procmail設定錯誤嗎?
3.延續剛剛解除郵件,小弟用mailwatch觀看,發現還是被判定成垃圾信,是小弟在哪個環節設定錯誤?
請各位指教...
主題: 回覆: 回覆: MySPAM, 我的廣告信管理程
作者: yoww2008-10-14 18:27
各位好:
我依照此篇的教學完成MailServer的建製,不過有幾點問題想請教:
1.小弟發現用mailwatch去看收信,會發現同樣的信件在mailwatch上出現兩次,感覺上是被送了兩次,在未設定myspam是正常的.
2.小弟登入myspam想解開被封鎖的郵件,按重送,但信件還是在(不知道是否是正常現象),且到收件夾去看,並沒有發現郵件被釋放,非廣告信的部分也一樣,請問這是procmail設定錯誤嗎?
3.延續剛剛解除郵件,小弟用mailwatch觀看,發現還是被判定成垃圾信,是小弟在哪個環節設定錯誤?
請各位指教...
不好意思~小弟不才,試著幫您解答看看~
如果無法解決,還是得靠twu2親自出馬 ;D

1.所有信都會出現兩次嗎?兩封信的Header一模一樣嗎?是實際上有兩封?還是mailwatch重覆抓了兩次?
2.重送的信還會留在MYSPAM的清單裏是正常的,收不到信的話檢查一下信是沒送出還是又被收回MYSPAM?不同的MTA產生的Header會不太一樣,procmail規則也會不一樣。
3.如果只是按重送並不會"解除"SPAM的判斷,建議設定成白名單。
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-16 16:18
引用
不好意思~小弟不才,試著幫您解答看看~
如果無法解決,還是得靠twu2親自出馬 奸笑

1.所有信都會出現兩次嗎?兩封信的Header一模一樣嗎?是實際上有兩封?還是mailwatch重覆抓了兩次?
2.重送的信還會留在MYSPAM的清單裏是正常的,收不到信的話檢查一下信是沒送出還是又被收回MYSPAM?不同的MTA產生的Header會不太一樣,procmail規則也會不一樣。
3.如果只是按重送並不會"解除"SPAM的判斷,建議設定成白名單。

感謝您的回覆,對我很有用的!!
1.是MailWatch抓兩次,但實際信收到只有一次!
2.目前終於試出來了,已經可以將垃圾信轉至MySpam.原因果然是Procmail的設定.
3.假設被丟到MySpam的信都不刪,應該會被送到垃圾信去學習吧?那照您所說,假設是誤判,我將信重送,那本來的信還是會留在MySpam中?那不就被學習成垃圾信?還是說要手動刪除?還是說只要按"非廣告信",按了會重送與送一份到非垃圾信學習嗎?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-10-16 16:50
感謝您的回覆,對我很有用的!!
1.是MailWatch抓兩次,但實際信收到只有一次!
2.目前終於試出來了,已經可以將垃圾信轉至MySpam.原因果然是Procmail的設定.
3.假設被丟到MySpam的信都不刪,應該會被送到垃圾信去學習吧?那照您所說,假設是誤判,我將信重送,那本來的信還是會留在MySpam中?那不就被學習成垃圾信?還是說要手動刪除?還是說只要按"非廣告信",按了會重送與送一份到非垃圾信學習嗎?
  MySPAM是把已經判斷成SPAM的垃圾信件蒐集到資料庫而已,主要目的是不讓USER收到太多垃圾信,會被蒐集到MySPAM是已經被判斷到的,並不會再學習一次,只有按"非廣告信"的信件會被加入到貝氏學習的白名單,其餘的信只會留在資料庫中三十天,並不需要另外處理,按重送只會做重新寄出的動作而已。
  不過貝氏學習的速度很慢,建議還是手設規則跟白名單才會有立竿見影的效果。
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-17 09:42
引用
MySPAM是把已經判斷成SPAM的垃圾信件蒐集到資料庫而已,主要目的是不讓USER收到太多垃圾信,會被蒐集到MySPAM是已經被判斷到的,並不會再學習一次,只有按"非廣告信"的信件會被加入到貝氏學習的白名單,其餘的信只會留在資料庫中三十天,並不需要另外處理,按重送只會做重新寄出的動作而已。
  不過貝氏學習的速度很慢,建議還是手設規則跟白名單才會有立竿見影的效果。
感謝您的回覆小弟大致上了解了....
那關於MailWatch看到兩次信件這是正常的嗎?還是小弟哪裡設錯?
小弟在想會是因為信進到Procmail然後又重新送過一次嗎?
變成mail--->MailScanner--->Procmail--->MailScanner
可是真正收到的就指有一封耶?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-10-17 10:05
感謝您的回覆小弟大致上了解了....
那關於MailWatch看到兩次信件這是正常的嗎?還是小弟哪裡設錯?
小弟在想會是因為信進到Procmail然後又重新送過一次嗎?
變成mail--->MailScanner--->Procmail--->MailScanner
可是真正收到的就指有一封耶?
MailWatch的紀錄是去抓MailScanner的
只要有經過MailScanner就會被記錄到
如果是按"重送"的信件,的確會在MailWatch出現第二次
如果不只是重送的信件,而是所有信皆會出現兩次的話,這我就不知道是為什麼了?
只能猜測是MailScanner掃瞄或是MailWatch紀錄時出問題,可這兩個點都跟MySPAM沒關係呀....
唯一的共通點只有MailWatch跟MySPAM都有用到MySQL
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-17 13:41
引用
MailWatch的紀錄是去抓MailScanner的
只要有經過MailScanner就會被記錄到
如果是按"重送"的信件,的確會在MailWatch出現第二次
如果不只是重送的信件,而是所有信皆會出現兩次的話,這我就不知道是為什麼了?
只能猜測是MailScanner掃瞄或是MailWatch紀錄時出問題,可這兩個點都跟MySPAM沒關係呀....
唯一的共通點只有MailWatch跟MySPAM都有用到MySQL
沒有錯...的確MailWatch是配合MailScanner然後記錄信件進出.
不過根據小弟了解mail寄送流程不是應該為:
mail---->mailscanner---->procmail---->mailbox
照您所說重送的話應該為
mailscanner---->procmail---->mailbox
-----------------------------------------------------------------------------------------------------
我的感覺是整個收送信流程會不會變成
mailscanner--->procmail---->mailscanner---->mailbox
所以我才會在mailwatch看到兩次同一封mail,不過這樣有點怪吧?況且收也收到一封.
我想這或許更MySPAM無關,應該是出在mailscanner或procmail吧?
我的prcomail設定為:
代碼: [選擇]
:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/spam/web/index.php save_spam
}

:0b
* ^X-Spam-Flag: YES
$DEFAULT

:0
* ^X-MySPAM: YES
$DEFAULT
不知道有沒有了解mail收送流程的高手可以解答一下!!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-10-17 14:31
您MailScanner設定procmail的部分是這樣嗎?
代碼: [選擇]
mailbox_command = /usr/bin/procmail
做到procmail的動作已經是在要寫入mailbox時,正常是不可能再往回丟給MailScanner
檢查看看maillog跟procmail的log看看有沒有異常的地方
或是把procmail停掉
看看是不是一樣每封信都兩個紀錄?

會不會是有設定到自動轉寄?所以實際上是有送兩次? ;D
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-17 16:13
引用
做到procmail的動作已經是在要寫入mailbox時,正常是不可能再往回丟給MailScanner
檢查看看maillog跟procmail的log看看有沒有異常的地方
或是把procmail停掉
看看是不是一樣每封信都兩個紀錄?

會不會是有設定到自動轉寄?所以實際上是有送兩次?
沒錯小弟在MailScanner的Procmail是這樣設定的.
我有試著把這行停掉結果也是一樣,這樣比較有可能是MailScanner?
但小弟在還沒做這些之前(MySpam)是正常的,且假設我從bbbb@domain.com(外部)寄到aaa@domain.com(內部)這個帳號,在mailwatch會看到兩次相同的從bbbb@domain.com(外部)到aaa@domain.com(內部),但我收aaa@domain.com就只有一封.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-10-17 18:38
沒錯小弟在MailScanner的Procmail是這樣設定的.
我有試著把這行停掉結果也是一樣,這樣比較有可能是MailScanner?
但小弟在還沒做這些之前(MySpam)是正常的,且假設我從bbbb@domain.com(外部)寄到aaa@domain.com(內部)這個帳號,在mailwatch會看到兩次相同的從bbbb@domain.com(外部)到aaa@domain.com(內部),但我收aaa@domain.com就只有一封.
真是詭異的狀況....
停掉Procmail後有問題的只剩MailScanner跟mailwatch了
檢查一下MailScanner.conf看有改到哪些設定?
看一下maillog看看信件進來的歷程紀錄做了哪些動作?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-18 10:58
引用
真是詭異的狀況....
停掉Procmail後有問題的只剩MailScanner跟mailwatch了
檢查一下MailScanner.conf看有改到哪些設定?
看一下maillog看看信件進來的歷程紀錄做了哪些動作?
抱歉...小弟其實也抓不太出來哪出問題...
我都是照著您blog的方式做的,我看log也沒有出現問題,就很正常的一封信進來:
代碼: [選擇]
Oct 18 10:34:08 mail postfix/smtpd[8764]: connect from localhost.localdomain[127.0.0.1]
Oct 18 10:34:08 mail postfix/smtpd[8764]: C2BD531E0497: client=localhost.localdomain[127.0.0.1]
Oct 18 10:34:08 mail postfix/cleanup[8767]: C2BD531E0497: hold: header Received: from tico.com.tw (localhost.localdomain [127.0.0.1])??by mail.tico.com.tw (Postfix) with ESMTP id C2BD531E0497??for <jay.cheng>; Sat, 18 Oct 2008 10:34:08 +0800 (CST) from localhost.localdomain[127.0.0.1]; from=<jay.cheng@tico.com.tw> to=<jay.cheng@tico.com.tw> proto=ESMTP helo=<tico.com.tw>
Oct 18 10:34:08 mail postfix/cleanup[8767]: C2BD531E0497: message-id=<20081018023400.M7134@tico.com.tw>
Oct 18 10:34:08 mail postfix/smtpd[8764]: disconnect from localhost.localdomain[127.0.0.1]
Oct 18 10:34:08 mail MailScanner[7870]: New Batch: Scanning 1 messages, 2901 bytes
Oct 18 10:34:08 mail MailScanner[7870]: Logging message C2BD531E0497.C668B to SQL
Oct 18 10:34:10 mail MailScanner[7870]: Spam Checks completed at 1866 bytes per second
Oct 18 10:34:10 mail MailScanner[7870]: Virus and Content Scanning: Starting
Oct 18 10:34:11 mail MailScanner[7870]: Virus Scanning completed at 2042 bytes per second
Oct 18 10:34:11 mail MailScanner[7870]: Logging message C2BD531E0497.C668B to SQL
Oct 18 10:34:11 mail MailScanner[7870]: Requeue: C2BD531E0497.C668B to E4B0331E0498
Oct 18 10:34:12 mail postfix/qmgr[7470]: E4B0331E0498: from=<jay.cheng@tico.com.tw>, size=3124, nrcpt=1 (queue active)
Oct 18 10:34:12 mail MailScanner[7870]: Uninfected: Delivered 1 messages
Oct 18 10:34:12 mail MailScanner[7870]: Virus Processing completed at 66293 bytes per second
Oct 18 10:34:12 mail MailScanner[7870]: Batch completed at 958 bytes per second (2901 / 3)
Oct 18 10:34:12 mail MailScanner[7870]: Batch (1 message) processed in 3.03 seconds
Oct 18 10:34:12 mail postfix/local[8779]: E4B0331E0498: to=<jay.cheng@tico.com.tw>, orig_to=<jay.cheng>, relay=local, delay=3.3, delays=3.3/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
不過我發現我又在另一台電腦作一次,也是一樣....
我都是照著您的設定檔作的,procmail關掉也是一樣...
MailWatch出現兩筆一樣資料如下:
代碼: [選擇]
Date/Time From To Subject Size SA Score Status
18/10/08
10:52:24 jay.cheng@tico.com.tw jay.cheng@localhost dddddddd 2.8Kb 1.46 Clean
18/10/08
10:52:21 jay.cheng@tico.com.tw jay.cheng@localhost dddddddd 2.8Kb 0.00 Clean

主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-18 11:11
出現兩筆的是否為 MySPAM 白名單符合的信呢?
因為被 MailScanner 認為是 SPAM 的信, 都會進到 MySPAM 處理, 如果符合白名單的條件, 則為再寄回去.
會出現兩筆, 也許是你寄回去的那個 smtpd, 仍會再經由 MailScanner 處理.

我不清楚 MailScanner 與 postfix 之間是怎麼處理的, 不過以 amavisd-new 與 postfix 之間的處理來看, 這個再送信的 smtpd, 是屬於 postfix 裡頭不會經由 amavisd-new 的那一個 session.

如果不是 MySPAM 的白名單的話, 那麼... 就應該與 MySPAM 沒關係, 可以把 maildrop/procmail 裡頭 MySPAM 的部份移除看看, 應該還是有相同的情形才對.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-18 14:31
出現兩筆的是否為 MySPAM 白名單符合的信呢?
因為被 MailScanner 認為是 SPAM 的信, 都會進到 MySPAM 處理, 如果符合白名單的條件, 則為再寄回去.
會出現兩筆, 也許是你寄回去的那個 smtpd, 仍會再經由 MailScanner 處理.

我不清楚 MailScanner 與 postfix 之間是怎麼處理的, 不過以 amavisd-new 與 postfix 之間的處理來看, 這個再送信的 smtpd, 是屬於 postfix 裡頭不會經由 amavisd-new 的那一個 session.

如果不是 MySPAM 的白名單的話, 那麼... 就應該與 MySPAM 沒關係, 可以把 maildrop/procmail 裡頭 MySPAM 的部份移除看看, 應該還是有相同的情形才對.
我都是在同台Server做的,我的Procmail如下:
引用
:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/spam/web/index.php save_spam
}

:0b
* ^X-Spam-Flag: YES
$DEFAULT

:0
* ^X-MySPAM: YES
$DEFAULT
我有嚐試關掉還是一樣,應該是在MailScanner?但是小弟不知到哪個地方會影響導致這個情形?
不管是否為白名單,只要事信進來都是在mailwatch出現兩次訊息....
此外小弟裝了另一台來試,好像比較跟MailScanner有關,不過不知道是哪個設定部分,且小弟順道一提一個問題不知道有人裝MailScanner有沒有遇過
我設好MailScanner重啟後會出現類似這樣的錯誤
引用
commit ineffective with AutoCommit enabled at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, <CLIENT> line 431.
Commmit ineffective while AutoCommit is on at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, <CLIENT> line 431.
不過之前也是照作都沒出現 ???

主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-10-20 09:11
不過我發現我又在另一台電腦作一次,也是一樣....
我都是照著您的設定檔作的,procmail關掉也是一樣...
MailWatch出現兩筆一樣資料如下:
代碼: [選擇]
Date/Time From To Subject Size SA Score Status
18/10/08
10:52:24 jay.cheng@tico.com.tw jay.cheng@localhost dddddddd 2.8Kb 1.46 Clean
18/10/08
10:52:21 jay.cheng@tico.com.tw jay.cheng@localhost dddddddd 2.8Kb 0.00 Clean

依照這個紀錄,的確是有兩封一樣的信進入MailScanner
兩個紀錄的時間跟分數都不同,所以是信被寄了兩次
應該把方向朝信為什麼被寄了兩次來偵查
Maillog的紀錄有沒有兩次?

我設好MailScanner重啟後會出現類似這樣的錯誤
引用
commit ineffective with AutoCommit enabled at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, <CLIENT> line 431.
Commmit ineffective while AutoCommit is on at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, <CLIENT> line 431.
不過之前也是照作都沒出現 ???
這個問題我也會遇到
之前有研究過
是因為MailWatch在Close資料庫時commit出錯
只有在restart時會發生
因為不影響運作,所以後來去忙別的事就沒繼續除錯了
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-20 14:21
引用
依照這個紀錄,的確是有兩封一樣的信進入MailScanner
兩個紀錄的時間跟分數都不同,所以是信被寄了兩次
應該把方向朝信為什麼被寄了兩次來偵查
Maillog的紀錄有沒有兩次?
恩...我在想也是出在MailScanner上比要有可能,但是log上好像沒有出現兩次,像我之前po的log內容他也是只有一次就寫入DB.


引用
這個問題我也會遇到
之前有研究過
是因為MailWatch在Close資料庫時commit出錯
只有在restart時會發生
因為不影響運作,所以後來去忙別的事就沒繼續除錯了
所以說這是正常現象?沒有關係嗎?
感覺上好像不影響整個mailserver的運作.

小弟再請教一個問題:
就是我在測試廣告信通知,但會出現此訊息
引用
PHP Warning:  Smarty error: unable to read resource: "notify.tpl" in /var/www/html/spam/web/libs/Smarty.class.php on line 1092

然後小弟是有收到通知信,但是有主旨沒有內容,我在猜...此訊息是因為要呼叫這個template但是沒呼叫成功,相對mail內容就無法呈獻,但小弟查過此檔在/var/www/html/spam/web/templates/notify.tpl,確有此檔且權限為apache.apache rwx------!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-20 14:54
你的那個 cron job 是用 apache 去跑的嗎? 如果不是的話, 那個 700 的權限, 別人是讀不到的.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-20 15:18
你的那個 cron job 是用 apache 去跑的嗎? 如果不是的話, 那個 700 的權限, 別人是讀不到的.
我是在root下設定的
且我用root登入主機直接下命令
php -Cq index.php send_notify
也嚐試將此檔改為755也無法...還是要改777?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-20 16:25
登入主機再跑? 那怎麼可能會有 email 通知你那個訊息? 應該是直接就看到才對.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-20 17:05
登入主機再跑? 那怎麼可能會有 email 通知你那個訊息? 應該是直接就看到才對.
小弟在主機下這樣測試的:
引用
[root@cs spam]# php -Cq web/index.php send_notify
PHP Warning:  Smarty error: unable to read resource: "notify.tpl" in /var/www/html/spam/web/libs/Smarty.class.php on line 1092
MySPAM[3878]: send notify to jay0932 (2)
MySPAM[3878]: delete 0 email for older than 30 days
MySPAM[3878]: delete 0 filter record for older than 30 days
[root@cs spam]#
但是有雖然有收到通知信,但信裡內容是空的?
我的測試方式是記一封垃圾信,然後在myspam裡看到此封信,就執行sen_notify程式如上,就出現這些訊息!
感謝您的幫忙解答...
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: hsiao_peter2008-10-20 17:38
請問一下 我的postfix 有開ssl那我的 設定要改
// smtp 伺服器的設定
$smtp_server = 'your_smtp_host';
$smtp_port = 25;
// pop3 伺服器的設定
$pop3_server = 'your_pop3_host';
$pop3_port = 995;
是不是這樣?
等大約1分鐘後會出現 登入失敗, 帳號密碼輸入錯誤
或郵件伺服器未開啟!

regards,
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-20 19:16
代碼: [選擇]
php -Cq index.php send_notify
請你看看 send_notify.sh 裡頭的內容吧, 那個指令與你的有什麼不同吧.

主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-20 19:18
本程式使用 pop3, 不是用 pop3s..... 而且這個與 postfix 也無關吧.
用要 pop3s, 請自行研究看要怎麼用 php 寫吧.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-21 09:22
代碼: [選擇]
php -Cq index.php send_notify
請你看看 send_notify.sh 裡頭的內容吧, 那個指令與你的有什麼不同吧.


感謝....可以哩...
但是...小弟有個疑問
小弟在/var/www/html/myspam/web下執行就沒有問題,但此目錄下沒有send_notify.sh這個檔案阿?
檔案的位置在上一層/var/www/html/spam/下?為什麼還是可以執行到?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22008-10-21 09:55
請看那個 script 的內容. 如果看不懂, 請先去學 bash script 吧.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-10-21 15:57
請看那個 script 的內容. 如果看不懂, 請先去學 bash script 吧.
Sorry....
看到了....小弟犯了點邏輯錯誤 :-[
主題: 回覆: MySPAM, 我的廣告信管理程
作者: jaymsa2008-10-31 17:54
各位前輩小弟又來了.... ???
小弟這幾天觀察mailserver發現被判為垃圾信的郵件沒有進到myspam程式,反而都在我的信箱出現,觀看log發現還是有透過procmail分信,設定檔小弟最近也沒更動過,看了信件的標頭,也被判為spam但不懂信就是會進到我的信箱而不是進到myspam裡面.
請各位前輩幫小弟看看!!(原本都可以正常看到spam進入myspam)
信件標頭:
引用
   
required 6, autolearn=spam, HTML_FONT_SIZE_LARGE 0.00,
HTML_MESSAGE 0.00, RAZOR2_CF_RANGE_51_100 0.50,
RAZOR2_CF_RANGE_E8_51_100 1.50, RAZOR2_CHECK 0.50,
TVD_SPACE_RATIO 2.90, URIBL_GREY 0.25, URIBL_JP_SURBL 2.86,
URIBL_SC_SURBL 2.52, URIBL_WS_SURBL 2.10)
X--MailScanner-SpamScore: sssssssssssss
X--MailScanner-From: z38kimo@yahoo.com.tw
X-Spam-Status: Yes

我的procmailrc設定檔(ps 我的myspam路徑為/var/www/html/spam):
引用
:0
* ^X-Spam-Status: Yes

{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/spam/web/index.php save_spam
}

:0b
* ^X-MySPAM: YES
$DEFAULT

:0
* ^X-MySPAM: YES
$DEFAULT


maillog:
引用
.....
Oct 31 17:57:13 cs MailScanner[10711]: Batch (1 message) processed in 12.58 seconds
Oct 31 17:57:13 cs postfix/qmgr[10681]: C31271244585: from=<z38kimo@yahoo.com.tw>, size=7562, nrcpt=1 (queue active)
Oct 31 17:57:14 cs postfix/local[11878]: C31271244585: to=<jay0932@jayclub.no-ip.org>, orig_to=<jay@jayclub.no-ip.org>, relay=local, delay=16, delays=14/0.1/0/1.5, dsn=2.0.0, status=sent (delivered to command: /usr/bin/procmail)
Oct 31 17:57:14 cs postfix/qmgr[10681]: C31271244585: removed
主題: 回覆: 回覆: MySPAM, 我的廣告信管理程
作者: yoww2008-10-31 18:25
:0b
* ^X-MySPAM: YES
$DEFAULT
試試看改成
:0b
* ^X-Spam-Flag: YES
$DEFAULT

順便檢查一下
procmail.log 裡的處理記錄
看看裡面有什麼訊息
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-11-01 10:35
引用
試試看改成
:0b
* ^X-Spam-Flag: YES
$DEFAULT

順便檢查一下
procmail.log 裡的處理記錄
看看裡面有什麼訊息

改了也是一樣耶....
不過真正處理Spam轉到MySpam的不是
{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/spam/web/index.php save_spam
}
這段嗎?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-11-03 12:05
引用
試試看改成
:0b
* ^X-Spam-Flag: YES
$DEFAULT

順便檢查一下
procmail.log 裡的處理記錄
看看裡面有什麼訊息

改了也是一樣耶....
不過真正處理Spam轉到MySpam的不是
{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/spam/web/index.php save_spam
}
這段嗎?

我的Procmail log出現以下訊息不知道代表什麼意思?
引用
procmail: Couldn't determine implicit lockfile from "/usr/bin/php"
procmail: Lock failure on ".lock"
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2008-11-03 14:07
我的Procmail log出現以下訊息不知道代表什麼意思?
引用
procmail: Couldn't determine implicit lockfile from "/usr/bin/php"
procmail: Lock failure on ".lock"
http://mirror.ncsa.uiuc.edu/procmail-faq/mini-faq.html#implicit-lock (http://mirror.ncsa.uiuc.edu/procmail-faq/mini-faq.html#implicit-lock)
引用
Q: What does "Couldn't determine implicit lockfile" mean?

A: Briefly, that you have :0: where you should have either a named lock file or just :0 (ignoring any possible flags here). See previous question. Hope this helps.

procmail.log裡有沒有跟MySPAM有關的LOG,像是:
代碼: [選擇]
MySPAM[1833]: insert for ABC with id 18068, size 3872
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: jaymsa2008-11-05 14:22
您好:
我想不知道是不是出在php或mysql問題?因為最近我發現我的DB有lost資料....
此外我修改crontab 我之前在...send_notify.sh前面加上php執行檔路徑,所以怪怪的,今天拿掉後發現又可以轉到myspam去了(我之前都沒改設定,是本來可以後來不行我才改crontab),不過我看procmail的log還是出下以下怪訊息:
引用
MySPAM[28337]: insert for jay0932 with id 46, size 1512
PHP Warning:  Unknown: open(/var/lib/php/session/sess_h4ltij7vmvn19pq920b38jo613, O_RDWR) failed: Permission denied (13) in Unknown on line 0
PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/session) in
 Unknown on line 0
還有點想請教,假設誤判的信件,我是勾選非廣告信,應該會被送到/var/spool/myspam/notspam中,但是我勾選之後跳出的訊息是"總共標示0封非廣告信(選擇一封)",我到該資料夾去看發現信沒有被送到notspam這方面我參考過Code,但我的路徑是對的?請問這是何種原因該怎麼debug?
感謝各位!!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: olderboy2009-04-02 11:41
想在請教一下,

我收到了兩封信,一封來自twnic,內容是"台網中心MyHome電子報四月號";另一封是來自於APC,內容是"绿色数据中心,从正确规划开始-APC在线研讨会"

這兩封信,都被當成了spam而放到在myspam的頁面中。

但當我按下這兩封信,重新寄送後,twnic那封還是一樣又被判斷成spam又回到了myspam去了,但APC的這封信,卻不會發生這樣的情形。
那我也有去信的header,APC那封的確有加上X-MySPAM: YES。但twnic這封卻沒有

不知道為什麼會發生這樣的狀況呢??可以請大家指點一下嗎??問題是出在哪兒??

Thanks
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22009-04-02 13:21
沒碰過.
如果你懂 php 的話, 就自己 trace 一下, 加一些程式碼去看看那兒有問題吧.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yolin11112009-05-28 18:00
twu2學長
不好意思想請問一下目前還是無法登入myspam,有看到登入畫面,但輸入帳號密碼卻出現登入失敗
httpd/errorlog
[Thu May 28 17:40:01 2009] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Thu May 28 17:40:01 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu May 28 17:40:01 2009] [notice] Digest: generating secret for digest authentication ...
[Thu May 28 17:40:01 2009] [notice] Digest: done
[Thu May 28 17:40:02 2009] [notice] Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6 configured -- resuming normal operations
[Thu May 28 17:40:38 2009] [notice] caught SIGTERM, shutting down

請問是跟caught SIGTERM, shutting down有關係嗎?
這個訊息有時候會出現,有時候又沒有,是我的apache沒有裝好嗎?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22009-05-28 23:03
也許是 selinux 造成的吧.
請確定你的 httpd 允許 php 使用 pop3 的連線到你的 pop3 伺服器上頭.

如果上頭是可以的, 請去看 pop3d 的 log 吧.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twnet2009-06-06 15:38
我的環境是要將spam 主機架設在exchange之前,有做過濾信件主機沒有開設帳號
想請問一下有啥辦法可以在遞送之前將廣告信件給備份下來,參考過 procmail 設定方法在本機作業上是可以做到,但要只做中繼站目前還是不行耶!
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22009-06-06 16:02
自己改一下 save.php 來用, 存成 re_send.php, 把 CheckFilter() 那個地方改一下, 不要去檢查了, 直接就用 send_mail() 把信傳到你指定的機器.

然後在 procmail/maildrop 中, 把所有非 spam 的信件改用 re_send.php 來處理.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twnet2009-06-12 12:07
我的環境是要將spam 主機架設在exchange之前,有做過濾信件主機沒有開設帳號
想請問一下有啥辦法可以在遞送之前將廣告信件給備份下來,參考過 procmail 設定方法在本機作業上是可以做到,但要只做中繼站目前還是不行耶!
自己改一下 save.php 來用, 存成 re_send.php, 把 CheckFilter() 那個地方改一下, 不要去檢查了, 直接就用 send_mail() 把信傳到你指定的機器.

然後在 procmail/maildrop 中, 把所有非 spam 的信件改用 re_send.php 來處理.
??? 不好意思!小弟對於您說的第二步驟看不太懂,需要如何修改 procmail 部分才可以達到將判定為 spam 的信件用 myspam 儲存,而非遞送到使用者信箱。懇請指點迷津。感恩。
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2009-12-29 11:05
@ 各位大大~
   小弟依好幾篇網路上能找到的文章,來裝MySPAM了,但卻連第一關→秀出網頁   都不行~能否給我一點明燈呢,我搞一個月多了~  :'(

‧OS:Fedora Core 6
‧Mail:Postfix
‧MySQL => mysql-5.0.77-3.el5
‧Web server (Apache) => httpd-2.2.3-22.el5.centos.2
‧PHP => 5.1.6 Vendor: CentOS  Release     : 23.2.el5_3
‧Smarty => Smarty-2.6.22

感謝再感謝~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2009-12-29 11:32
@ 各位大大~
   小弟依好幾篇網路上能找到的文章,來裝MySPAM了,但卻連第一關→秀出網頁   都不行~能否給我一點明燈呢,我搞一個月多了~  :'(

‧OS:Fedora Core 6
‧Mail:Postfix
‧MySQL => mysql-5.0.77-3.el5
‧Web server (Apache) => httpd-2.2.3-22.el5.centos.2
‧PHP => 5.1.6 Vendor: CentOS  Release     : 23.2.el5_3
‧Smarty => Smarty-2.6.22

感謝再感謝~


瀏覽時出現什麼訊息?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2009-12-31 16:08
@ 不好意思,我不知大大回覆這樣快,以為有文章會有MAIL通知,我太大意了~真是抱歉~
[說明]
   我不管設80埠還是虛擬埠,都是“沒有網頁”可秀的狀況~
 
   感覺像PHP或Smarty沒動作的感覺,但http及系統的LOG都沒問題,且服務都有正常起來~ HTTPD及Mysqld,所以我真的沒招了,看大家都是隨文就建好了‥我卻‥
 
   請大大再幫忙一下,超‥超‥超‥超級感恩~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2009-12-31 16:25
會有回復通知呀~
你回覆時看看下面的"額外選項..."

可以在SERVER上自己連自己嗎?
EX.  elinks http://localhost/myspam

上面還有其他的網頁可以正常連嗎?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2009-12-31 18:33
@ yoww大大新年快樂~

   我剛在主機上試您說的 elinks http://localhost/myspam
   結果出現:
   Unable to retrieve http://localhost/myspam
   Connection refused   
   
   然後按OK就跳掉了~

PS..我們公司是 2台架構,1台外→收信(),丟給第2台(對內,Sendmail),第2台有Webmin,但第1台(Postfix)
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2010-01-04 10:00
   結果出現:
   Unable to retrieve http://localhost/myspam
   Connection refused   
表示連不到或是localhost上沒有HTTP的服務
同一台上其他的WEB頁面正常嗎?
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-01-04 12:14
表示連不到或是localhost上沒有HTTP的服務
同一台上其他的WEB頁面正常嗎?

=============================
@ yoww大大:
   我這台上沒有其它的WEB頁面了,這台就是為了MySPAM所以灌了它的相關套件,

   不過‥奇怪的是,我用我的PC,去連那台主機的IP或我建的網址,可以秀出APACHE的首頁說~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2010-01-04 15:36
別台電腦連的到WEB?
檢查看看防火牆設定

別台電腦連不到 /myspam 的話檢查看看 /etc/httpd/conf.d/myspam.conf
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-01-19 10:12
@ yoww大大,不好意思,這陣子在忙很多雜事~
   我主管有幫我看了,看來是PHP沒Working,所以網頁才會出不來~ 不知有沒有什麼方法來確定PHP與APACHE的關係~

   其實應該說,PHP、APACHE、MYSQL都有在運作,但就是‥PHP和APACHE之間好像沒連起來的感覺~
   
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: yoww2010-01-20 09:14

檢查看看 /etc/php.ini

代碼: [選擇]
; Enable the PHP scripting language engine under Apache.
engine = On

看看是不是 On
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-01-20 09:46
@ yoww大大,感謝您一路的幫忙~
   我家課長幫我搞定了,原來都是“Smarty”的路徑問題,PHP  APACHE MYSQL都運作正常,只是路徑問題,所以沒法秀出畫面,但現在可以了~
   不過現在又有些問題,我實在不太懂~真是不好意思,我的LINUX底子不是很好~
1. 我公司是2台MAIL Server架構,所以我現在設MySPAM這台是負責收信跟過濾廣告信的,所以User的信事實上是在另一台對內的,所以‥目前這台沒HOME的目錄,這樣能做嗎?(指MySPAM能運作嗎?)
2. 我看原作Tommy大有寫=>可以先改某個使用者 HOME 下頭的 .mailfilter 檔案 (可以先用某個使用者來測試, 等運作成功後, 再改用 /etc/maildroprc, 讓全部的使用者都使用)
   
   ↑這個要怎麼改呢?因為Mail Server運作中,我也不敢冒然的直接全上了(不過‥我的/home下面,什麼東東也沒有,不知要怎麼改啊‥)

我的是Postfix+Amavis+Procmail+spamassassin~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22010-01-20 09:59
用 procmail 就先改某個使用者的 ~/.procmailrc 做測試就可以. 等確定沒問題再改用 /etc/procmailrc

你上頭提到那個 maildroprc 是給 maildrop 用的, 不是給 procmail 用的.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-01-20 17:58
@ 我因為沒有任一User的家目錄,所以我自建了一個 /home/user/mail
   然後在mail下,自建了 .procmail 內容是
#MAILDIR=/var/mail
LOGFILE=/var/log/procmail/procmail.log
:0
* ^X-Spam-Status: Yes {
:0: * ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/myspam/web/index.php save_spam
}
:0b
* ^X-Spam-Flag: YES
$DEFAULT
:0
* ^X-MySPAM: YES
$DEFAULT

也確認Postfix裏的main.cf裏 mailbox_command 有指定 procmail的位置~
不過‥
1.廣告信沒進到MySPAM (本來我SPAM在Amavis裏設定是直接丟棄,為了這我改為D_REJECT了,結果沒進MySPAM,反而退信了)
2.procmail.log都沒資料

↑請問這樣何解呢?  ???
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-03-24 11:11
@ Gateway架構還真難搞啊~
  目前困難是,已經有將save.php改成re_send.php,以利轉給第二台收信主機,但‥目前MAIL會在Gateway那台無限迴圈,所以我只好引入phpmailer來幫忙看能不能用第二台的SMTP來寄信,看會不會就可以將信寄走不會鬼打牆~

但‥phpmailer的程式碼是要加在哪裡才會生效啊~有沒有也是Gateway架構的大大,拜託請給小弟一點意見~感恩~
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: twu22010-03-24 12:46
gateway 為什麼把 save.php 改成 re_send.php? 這是要做什麼?
跑到 save.php 不就是被認定是 spam 而要存到資料庫了嗎?

原則上... myspam 是要依靠 maildrop 或 procmail 的程式來運作, 而這類的程式是最後儲存信件會去跑的程式, 所以要在實際儲存信件的那台機器上跑.
會變成 gateway 的方式, 通常是實際 mail 存放的機器不是 unix link 的系統, 也許是不行跑 maildrop/procmail....

所以, 你必須先不考慮 myspam... 先考慮如何在你的 gateway 上頭跑 maildrop/procmail 而可以把信往實際上的機器去送吧.

我想到的作法是:
1. 把 save.php 存成一個 send_to_mailserver.php 的檔案, 然後把內容改成這樣子:
代碼: [選擇]
<?php

if (!defined(&#39;IN_MYSPAM&#39;)) {
    
global $spam_url;
    
header(&#39;Location: &#39;.$spam_url);
    
exit;
}

function 
writelog($str)
{
    global 
$test_mode$debug;

    if (
$test_mode) {
        echo 
$str."\n";
        
$fp fopen(&#39;/tmp/debug.log&#39;, &#39;at&#39;);
        
if ($fp) {
            
fputs($fp$str."\n");
            
fclose($fp);
        }
    }
    else
        
syslog($debug LOG_DEBUG LOG_INFO$str);
    return;
}

function 
SendToMailServer()
{
    global 
$debug$test_mode$test_user;

    if (!isset(
$_SERVER[&#39;LOGNAME&#39;])) {
        
if (!$test_mode) {
            
writelog(&#39;no LOGNAME!&#39;);
            
return 1;
        }
        
$user $tesr_user;
    }
    else {
        if (
$test_mode)
            
$user $test_user;
        else
            
$user $_SERVER[&#39;LOGNAME&#39;];
    
}

    if (
$debugwritelog("try to send mail for $user");

    
$fname = &#39;php://stdin&#39;;
    
$fp fopen($fname, &#39;rb&#39;);
    
if ($fp == 0) {
        
writelog("Can&#39;t open $fname");
        return 
1;
    }

    
$content = &#39;&#39;;
    
while (feof($fp) == 0) {
        
$buf fgets($fp4096);
        
$content .= $buf;
    }
    
fclose($fp);

    if (
send_mail($user$content)) {
        
writelog("send mail for $user");
        return 
0;
    }
    
writelog("failed to send mail for $user");
    return 
1;
}

?>


這樣子這個 send_to_mailserver.php 就會去做寄信的動作. 而 myspam 中的 smtp 伺服器是可以指定的, 只要把它指到你實際上的 email server (如果不是, 就會 loop 了), 只要執行到這兒就應該可以把信寄到實際的伺服器上頭了.

2. 然後再改 index.php, 在

代碼: [選擇]
if ($argc == 2 && $argv[1] == 'save_spam') {
    require_once('save.php');
    $rc = SaveSPAM();
    closelog();
    $ret = ($rc == 0) ? 0 : EX_TEMPFAIL;
    exit($ret);
}
的後頭再加上
代碼: [選擇]
if ($argc == 2 && $argv[1] == 'send_mail') {
    require_once('send_to_mailserver.php');
    $rc = SendToMailServer();
    closelog();
    $ret = ($rc == 0) ? 0 : EX_TEMPFAIL;
    exit($ret);
}

這樣子, 只要去執行 send_mail 參數時, 就會直接去寄信.

3. 這時, 只要改一下 procmailrc 的設定, 原本可能是
代碼: [選擇]
#LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
:0
* ^X-Spam-Status: Yes
{
    :0
    * ! ^X-MySPAM: YES
    |/usr/bin/php -Cq /var/www/html/myspam/web/index.php save_spam
}

改成
代碼: [選擇]
MAILDIR=/var/mail
:0
* ^X-Spam-Status: Yes
{
    :0
    * ! ^X-MySPAM: YES
    |/usr/bin/php -Cq /var/www/html/myspam/web/index.php save_spam
}
:0
* > 0
|/usr/bin/php -Cq /var/www/html/myspam/web/index.php send_mail
這樣子應該就可以把所有原本要存的信寄到實際的伺服器了.

PS. 沒實際試過, 不保證上頭的 code 是正常可以執行的.
主題: 回覆: MySPAM, 我的廣告信管理程式
作者: ony2010-03-24 16:09
@ twu2 大,看到您的回覆,比冬天泡溫泉還甘溫啊~
   您判斷的沒錯,我公司因為主機較老舊,效能及安全的關係,作成 2台LINUX。一台Gateway,另一台才是對內的存放信箱及寄信的~
   而廣告信、病毒都是Gateway在判斷,自然MySPAM也要放這~
   而為什麼後來我求救說要裝PHPMailer上去,就是因為不知smtp要去哪指定,所以只好‥但是~還是搞不定~
   您的方法看來才是最精簡的,而且‥行了!!!!!!

   不過procmailrc裏我還要改一下,目前在MySPAM裏設好自訂規則白名單的信會不見~我再來搞一下,感恩啊~在這向您扣拜~
   
主題: Re: MySPAM, 我的廣告信管理程式
作者: Squawell2011-08-15 11:41
小弟有幾個問題想跟大家請教一下:
小弟安裝的是iredmail這個整合性的MAIL系統.....目前的狀況是MYSPAM的網頁顯示OK..測試是否有寫入資料庫也正常(/usr/bin/php -Cq index.php test_save_spam)..所以小弟寄了一個測試信去某帳號.但是登入該帳號卻沒發現任何信件.但是在WEBMAIL上面卻有收到標是有SPAM字樣的信件.不知道是哪邊設定有誤?想請大家幫忙謝謝.
以下是小弟有做修改的地方:

1./etc/postfix/main.cf
代碼: [選擇]
mailbox_command = /usr/bin/procmail
2./etc/procmailrc
代碼: [選擇]
:0
* ^X-Spam-Status: Yes
{
:0:
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /var/www/html/myspam/index.php save_spam
}
:0b
* ^X-MySPAM: YES
$DEFAULT
在IREDMAIL上面有多一個設定如下:
代碼: [選擇]
# Set Maildir path.
MAILBOX="$HOME/$DOMAIN/$USER/"
DEFAULT="$MAILBOX"
JUNK="${MAILBOX}/.Junk/"

主題: Re: MySPAM, 我的廣告信管理程式
作者: twu22011-08-15 11:58
把 procmail 的 log 打開來, 看看有沒有真的跑到 myspam 那個 php 吧.
主題: Re: MySPAM, 我的廣告信管理程式
作者: Squawell2011-08-15 13:53
把 procmail 的 log 打開來, 看看有沒有真的跑到 myspam 那個 php 吧.
剛看了一下是空的=.=..是否表示沒有跑myspam的問題??