刪除mailing queeue 裡的信

https://192.168.0.2:10000/qmailadmin/list_queue.cgi 

ip
改成自己mail server的ip,或下指令,

qmHandle -l

然後可以看到 queue  裡面的信,
然後可以下 qmHandle -Dxxxx,
xxxx = 信件編號,



設定轉寄

重新命名該檔案smtproutes
mv /var/qmail/control/smtproutes /var/qmail/control/smtproutes.bak

或者先stop qmail 的服務,刪除smtproutes這個檔案,系統就會照預設去發郵件,
也可以編輯該檔案,將原本設定為轉寄的主機IP或名稱改掉或空白,


測試是否有開放 SMTP

telnet mail.foreshot.com.tw 25
auth login
....如果打了...auth login 有出現 334 XXXXxxxxXXX的話...表示 smtp 有開認證功能



POP3指令

USER name valid in the AUTHORIZATION state
PASS string
QUIT

STAT valid in the TRANSACTION state
LIST [msg]
RETR msg
DELE msg
NOOP
RSET
QUIT

Optional POP3 Commands:

APOP name digest valid in the AUTHORIZATION state

TOP msg n valid in the TRANSACTION state
UIDL [msg]

POP3 Replies:

+OK
-ERR


大部分的服務都放在/etc/rc.d/init.d 底下
所以要知道是哪個服務的名稱,在後面再下stop就可以
文字模式下可以下哪個指令看開機啟動哪些程式??
另外有一個指令是設定這個服務開機要不要啟動的....
chkconfig --list 是看開機啟動的服務...或下 ntsysv 也可以
ntsysv 比較簡單
ntsysv 是不是直接出現選單讓你選
chkconfig --list 則是列出所有開機的服務
要開關的指令
例如....chkconfig --level 345 httpd on .... 這是說開機要啟動網頁的服務
所以如果我開機不要啟動qmail , chkconfig --level 345 qmail off
Level 3 指的是文字模式...Level 5 指的是 X-Window 模式
所以 Level 345 .....就是說這三種模式下....服務開啟的設定


參考

架設 MAIL
MUA 和 MTA
它們分別是 Mail User Agent 和 Mail Transfer Agent 的意思。我們平時用的 Outlook Express﹑Netscape Mail﹑或是 Linux 上面的 pine ﹐它們都是 MUA 。簡單說﹐MUA 是用來給使用者流覽郵件和書寫郵件的程式。
MTA 為Mail Transfer Agent,稱為郵件伺服器。它負責 MUA 的請求﹐也負責將郵件從一個 MTA 傳到另一個 MTA 。通常一個 MTA 都可以支持好幾種郵件協定﹐例如﹕ UUCP﹑SMTP﹑POP 等。 UUCP (Unix to Unix Communication Protocol) 現在已經比較少用了﹐取而代之的是 SMTP (Simple Mail Transfer Protocol) 和 POP (Post Office Protocol) 這兩個協定。 SMTP 負責的將郵件從 MUA 上傳給 MTA﹐也是 MTA 和 MTA 之間的郵件傳遞協定﹔ 而在沒有 POP 之前﹐email 的使用者一般都要用 telnet 或其它遠端控制程式連上 MTA 那裡﹐然後在那裡閱讀郵件﹐而有了 POP 之後﹐ MTA 可以將使用者的郵件存在一個檔案裡﹐然後使用者通過 MUA 連到 MTA ﹐再將信件下載回本地機器閱讀。另外﹐ MUA 和 MTA 都無需是同一個廠家的軟體﹐只要雙方都支持 POP 協定就可以了。有些程式﹐如 sendmail ﹐表面來說﹐就同時具備 MUA 和 MTA 功能了。
我們用 MUA 撰寫郵件之後﹐是通過 SMTP 協定上傳給 MTA 的﹔而閱讀郵件則是通過 POP 從 MTA 那裡下載回來。所以﹐當您設定 MUA 的時候﹐就要分別指定 SMTP 和 POP 伺服器的位址了﹐雖然﹐大多數情況之下都可能會是同一台機器。如果您看一看 Linux 的 /etc/services 這個檔案﹐您會發現如下這幾行﹕
smtp 25/tcp mail
pop-2 109/tcp postoffice # POP version 2
pop-2 109/udp
pop-3 110/tcp # POP version 3
pop-3 110/udp
它們分別指定了郵件伺服器和外面聯係所使用的 Port 。您會看到 POP 也有兩個版本﹕2 和 3 ﹐分別使用 109 和 110 這兩個 port。
或許您已經留意到 IMAP (Internet Message Access Protocol) 這個協定吧﹕
imap2 143/tcp imap # Interim Mail Access Proto v2
imap2 143/udp imap
這個 IMAP 是目前新的郵件協定﹐通過 IMAP﹐ 使用者在 MUA 那端就無需分別指定 SMTP 和 POP 作為上傳和下載協定了﹐而只一個 IMAP 協定就可以﹐而且 IMAP 還可以讓不同的使用者共用一個 MUA﹐非常方便哦。
現在我們對郵件系統應該有了初步的概念了吧。讓我們簡單的看一看一封郵件的傳遞流程﹕
1. 使用者 A 使用 MUA 撰寫了一封郵件給另一個網路的使用者 B。
2. 通過 SMTP 上傳給 MTA。
3. 然後 MTA 通過 SMTP 再傳給對方網路的 MTA。
4. 最後使用者 B 通過其自己的 MUA 用 POP 連上 MTA 將郵件下載回來閱讀。

圖一


圖二

在linux底下簡單的收發信操作:
$mail 目的地位址
Subject: 輸入郵件標題
開始輸入郵件內容
. ” . ” 是代表郵件結束
$

觀看郵件內容:
$mail
1 代表觀看第一封信
exit
$ 跳出mail

基本上上述的指令一般只是拿來測試mail server是否運作正常,一般收發信當然是不會用這麼粗糙的工具的。

開啟sendmail及pop,imap:
sendmail是屬於standalone的process,而pop與imap是屬於superdaemon,也就是由inetd代管的process。所以其啟動方式分別是:
/etc/rc.d/init.d/sendmail start 或
/etc/rc.d/init.d/mta start

1. 修改/etc/init.d/imap檔案
2. 將inetd重跑

如果你的系統是將pop及imap寫在/etc/inetd.conf中,則須將/etc/inetd.conf中以下幾行的井號拿掉:
#imap stream tcp nowait root /usr/sbin/tcpd imapwrapd
#pop2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop3 stream tcp nowait root /usr/sbin/tcpd ipop3d

測試sendmail及pop,imap是否正常運作:
在本機底下可用KDE所附的Kmail測試。(Kmail就是KDE底下類似outlook的程式)。
若機器有連上網路,且DNS設定正確,可用outlook測試。

重要檔案及資料夾:
/usr/sbin/imapd (或/usr/sbin/imapwrapd)
/usr/sbin/ipop2d
/usr/sbin/ipop3d
/usr/sbin/sendmail
以上就是上述的服務的執行檔。

/var/spool/mail
信件預設的位址。所有人的信都會放在這裡。這裡有一點要注意,如果有使用者收發信的動作不完全,例如收信時突然斷線或其他原因發生錯誤,有些系統會產生一個lock檔案,將這個使用者鎖住。此時會在這個資料夾產生一個副檔名為pop(不同的系統可能會產生不同的副檔名)的檔案。若要讓這使用者的收發信功能恢復正常,必須將此檔案刪除。

/etc/mail/access
限制轉寄信件的檔案。這個檔案要設定好,否則你的主機可能會被拿來轉寄廣告信。預設值是:
localhost.localdomain RELAY (允許中繼此網域要求的轉信服務)
localhost RELAY
127.0.0.1 RELAY
tn.edu.tw RELAY(例如開放tn.edu.tw網域轉信)
(不收發xxxx.tn.edu.tw的信,但收發mail.xxxx.tn.edu.tw的信)
xxxx.tn.edu.tw REJECT
mail.xxxx.tn.edu.tw OK
存檔後必須執行下行指令才能生效。
makemap hash /etc/mail/access.db < /etc/mail/access 或
makemap -r hash /etc/mail/access.db < /etc/mail/access

/etc/mail/local-host-names (舊版本為/etc/mail/sendmail.cw)
收多個網域的信
如此mail server domain name是mail.xxxx.tn.edu.tw,欲同時收xxxx.tn.edu.tw網域的信,就是設機器Aliases Name。
修改/etc/mail/local-host-names
增加一行,內容為:
xxxx.tn.edu.tw

此外DNS的正解必須加上MX如下:
xxxx.tn.edu.tw IN MX 10 mail.xxxx.tn.edu.tw.

/etc/aliases
多使用者同一別名:
我們在設定 httpd ﹑news﹑fetchmail 等服務的時候﹐都常會指定一個管理者的信箱名稱(也可以是地址)﹐例如﹕webmastet﹑postmaster 等等。您或許知道這些使用者其實並沒有出現在 /etc/passwd 中﹐那麼傳給他們的郵件又會寄哪裡去了呢﹖這個秘密﹐就是郵件伺服器的 alias 功能啦﹐也有人稱之為‘mail list’。說穿了其實只是一個檔案﹕/etc/aliases 。如果您用 vi 去開啟這個檔案﹐多看兩遍您就知道是怎麼回事了。

在 /etc/aliases 這個檔案中﹐您會發現沒有“#”註解的每一行﹐開始都是一個名稱﹐然後跟著一個“﹕”符號﹐然後在其右邊又有其它的名稱。其工作原理是﹕當 sendmail 收到一個本地郵件的時候﹐會檢查這個 /etc/aliase 檔案﹐如果發現“﹕”左邊的名字跟接收者名稱吻合﹐就會將郵件轉遞給“﹕”右邊的名稱。在右邊的名稱﹐可以多過一個﹔也可以是另一個郵件地址﹔也可以指向一個檔案或程式。當郵件轉給右邊之後﹐又重新找一遍這個 /etc/alias 裡面的設定﹐直到再找不到左邊名稱為止。例如下面這個例子﹕ MAILER-DAEMON: postmaster
postmaster: root
daemon: root
root: netman, kenny
kenny: "| sendmail kenny@other.mail.net"
sales: sales-list
sales-list: ":include:/etc/sales.list"

這樣﹐凡是傳給 MAILER-DAEMON 的就會轉給 postmaster ﹐然後再轉給 root﹐另外 daemon 也會轉給 root﹐而 root 呢﹐又分別轉給 netman 和 kenny﹐最後 natman 再也找不到名稱了﹐直接送到 netman 的信箱去﹔而 kenny 呢﹖則通過 sendmail 轉到 kenny@other.mail.net 那個地址去。另外﹐我們只需建立一個 /etc/sales.list 這樣的檔案﹐在裡面寫上所有 sales 的名稱﹐可以全部為一行﹐用‘﹐’和一個空白鍵分隔﹔這樣﹐所有 salse 都會收到寄給 sales 的郵件了。

不過,sendmail 真正讀取的並不是 /etc/aliases 這個檔案﹐而是另一個經過資料庫格式過的檔案﹐我們無需知道它叫什麼﹐只要您滿意您的 /etc/aliases 檔案之後﹐馬上執行﹕ newaliases
注意一下有沒有錯誤信息﹐有則重複修改檔案和執行 newaliases ﹐直到再沒錯誤為止。


/var/spool/mqueue
檢查尚未寄出的信
因某些原因未能即時寄出的信件放在/var/spool/mqueue,可以指令mailq查看信件。

/etc/mail/sendmail.cf
sendmail的設定檔。(以下介紹的東西講義都沒有,這點要注意一下)在RedHat系統中,裝好sendmail一定要先修改以下那行:
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
前面加上井號註解掉,並將sendmail重跑。若不這樣做,則sendmail將只能在本機作用。

/ec/mail/sendmail.cf這個檔案大部分的地方不會更改到,一般可能會更改到的為底下幾個參數:

Dj
EX:機器名稱為mboc.netlab.cc.nthu.edu.tw
可以 Dj netlab.cc.nthu.edu.tw
告訴系統說我就是 netlab.cc.nthu.edu.tw,系統就可以收下
netlab.cc.nthu.edu.tw的信。

DS (定義寄信機器名稱)
EX: DS mbox.OZ.nthu.edu.tw
則系統會將所的信件,都丟到 mbox.OZ.nthu.edu.tw這台機器器當
作寄信伺服器。

DM (定義寄出去的信件上面mail from的名稱,自動寫上什麼)
EX:在mbox.netlab.cc.nthu.edu.tw寄信出去
則信件上會有username@mbox.netlab.cc.nthu.edu.tw
如果在DM加上 DM netlab.cc
則寄出去的信件上會變成 username@netlab.cc
mail from中優先順序DM>Dj
不過如果對方也將信件e-mail寫成username@netlab.cc,那要收取
netlab.cc的信件,則必須在cw或DM中定義成netlab.cc

0 AliasFile=/etc/mail/aliases(定義aliases檔案位置)

0 MinFreeBlock=100
當電腦硬碟空間不足,會造成系統當機,而信件通常是殺手之一,所以此行的設定是當硬碟空間剩下100Block則系統就不收信了!這是一種保護措施。

0 MaxMessageSize=1000000
定義超過1000000(1MB)(預設值)大小的信,系統就不收此封信。

0 MaxHopCount=17
信一旦在機器之間流傳,卻沒有機器將信收下,此時會造成信件在某幾台機器之間繞圈圈,但是每當機器收到此封信一次,在received就會加 1,到了17,系統就會將信件丟掉。

0 SendMimeErrors=True
退回的信件要用Mime進行編碼嗎?True編碼會造成很多附件,Flase則不進行編碼。

0 ForwardPath=$Z/.forward.$w.$Z/.forward
一旦有信件,而在使用者的.forward此檔中加上一個E-mail address,則信件就會再轉寄到上面的E-mail中。

0 MeToo
信寄給自己,sendmail會認為多此一舉而將信件丟到,會造成信件不見,如果將 MeToo打開,則寄給自己的信sendmail也會忠實傳送到信箱中。

0 QueueDirectory=/var/spool/mqueue
當系統收到信件,會先暫放在mqueue的目錄下,再由系統決定轉寄等其他動作。

0 Time.queuerturn=5d
sendmail為了幫你寄信,當你的信尚未出去!系統為連續嘗試, 5天後若仍沒寄出,則退還給user。

0 Timeout.Queuwarn=4h
如果信寄不出去,系統會寄一封信通知使用者,告知在嘗試過 4小時候,信仍無法寄出,不過仍會繼續嘗試XX天。

0 QueueLA=8
sendmail啟動會用掉1MB的 RAM,當load到8.0,則先存到硬碟中,等到系統低負載時,才寄出,但如果超過12,則無法連上了。

0 MaxDameonChildren=12
sendmail預設可以同時啟動12個,表示可以同時收12封信。


billtang0311 發表在 痞客邦 PIXNET 留言(0) 人氣()