• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • qmail FAQ2

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    第一部分:MTA 第二部分:igenus 第三部分: sqwebmail 第四部分: vpopmail + qmailadmin 本帖收集論壇內的Qmail相關的FAQ。 抄襲無雙的話,“在論壇的回答中有許多好的回答,但是如果每一個都要寫到精華的話 那么精華又未免太多了”;同時也為了避免各位重復
    第一部分:MTA

    第二部分:igenus

    第三部分: sqwebmail

    第四部分: vpopmail + qmailadmin

     本帖收集論壇內的Qmail相關的FAQ。
    抄襲無雙的話,“在論壇的回答中有許多好的回答,但是如果每一個都要寫到精華的話
    那么精華又未免太多了”;同時也為了避免各位重復討論相同的小問題,我就整理了這篇文檔。

    另外,涉及的方面太多,我不可能一一嘗試,如有謬誤,請不吝賜教。

    建議大家把自己認為好的回答寫到這個帖子的回復中,并寫上討論的帖子連接

    準備分幾個部分。


    第一部分:MTA

    第二部分:igenus

    第三部分: sqwebmail

    第四部分: vpopmail + qmailadmin

    各位還可以補充。

    我們會定期將各位提供的FAQ和論壇上的好東西整理進去,并為各位作者署名。


    第一部分:MTA

    1: 怎么加快 qmail 投遞郵件速度?

    A: /var/qmail/control下面是qmail的控制文件,這兩個文件:
    Concurrentcylocal default: 10 最大本地同時傳送數
    Concurrencyremote default: 20 最大遠程同時傳送數

    2: Qmail的主要配置文件有哪些?
    A: http://chinaunix.net/forum/viewtopic.php?t=1126

    3: qmail+LDAP安裝配置方法? (netloafer)
    A: http://chinaunix.net/forum/viewtopic.php?t=1119

    4:Qmail如何限制附件的大小呢??
    A:
    在/var/qmail/control/databytes 文件中設置附件的大小,可以實現對qmail附件大小的限制,一般安裝完成后,這個文件是沒有的,你可以自己創建。
    smtp方式是以qmail的databytes作限制的

    5: 用qmail怎么封mailfrom? (peng)
    A:使用qmail控制文件封整個域或郵件地址
    vi/var/qmail/control/badmailfrom
    這個控制文件實現拒收郵件功能的,每一個地址要單獨一行。而且,不用重起qmail就能生效。
    例如:
    peng@96633.net-----限制一個特定的用戶
    @sina.com----限制整個域中的郵件

    B:使用tcprules規則文件封IP地址(gadfly)。

    #網段
    10.10.10.:deny
    #ip
    10.10.10.1:deny

    重新生成cdb文件就好了


    6. 如何讓隊列中的郵件馬上傳遞? (peng)

    A:
    # kill -HUP qmail-send

    要刪除隊列中的郵件

    1) 停止QMAIL
    2) mv /var/qmail/queue/lock /var/qmail/;find /var/qmail/queue/ -type f -exec rm {} \; ;mv /var/qmail/lock /var/qmail/queue/
    3) 重啟QMAIL.
    隊列中的郵件包含在以下目錄中 /var/qmail/queue//hash/#number

    7、在郵件隊列中快速刪除從一個地方發過來但又不存在的郵件? (peng)
    A:
    設bad.jite.com是這個域??梢枣I入以下命令

    # echo # > ~alias/.qmail-baddomain-default
    # echo bad.jite.com:alias-baddomain>> /var/qmail/control/virtualdomains
    # echo bad.jite.com:127.0.0.1 >> /var/qmail/control/smtproutes
    然后運行/var/qmail/bin/qmail-tcpok,給qmail-send 一個HUP信號

    8、如何刪除隊列中的大量廣告信息? (peng)
    A:
    先停止QMAIL.
    1) 停止qmail, qmail-smtpd
    2) 在以下默認目錄下 /var/qmail/queue/mess
    find . -type f -exec grep "^Subject:" {} \; -print -exec rm {} \;
    3) 運行queue-fix清除相關文件,
    4) 重啟qmail.

    9、rh9下編譯qmail出錯:
    ./load auto-str substdio.a error.a str.a
    substdio.a(substdo.o)(.text+0x43): In function `allwrite':
    : undefined reference to `errno'
    collect2: ld returned 1 exit status
    make: *** [auto-str] Error 1
    什么問題?(microcao &linuxsky)


    A: errno 這個錯誤是因為 RH9 系統使用了新的 GLIBC 庫 2.3.1 造成的
    需要修改 QMAIL 的代碼才能編譯另外 DJB 的幾乎所有程序都存在這個問題

    QMAIL 官方已經提供了推薦的補丁

    http://www.qmail.org/top.html#patches

    打個這個補丁就行了
    http://qmail.mirrors.space.net/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch
    至于tcpserver可能也有相同的問題,patch都可以在以下目錄找到
    http://qmail.mirrors.space.net/moni.csi.hu/pub/glibc-2.3.1/

    10:Apr 7 17:52:15 www qmail: 1049709135.048259 delivery 38: deferral: Uh-oh:_home_directory_is_writable._(#4.7.0)如何解決?
    A:需要將用戶的郵件目錄修改為700
    由于vpopmail利用的是wildcard方式匹配的,所以homedir必須從domain的目錄開始。假設gadfly@test.com目錄是/home/vpopmail/domains/test.com/gadfly/
    這樣修改屬性:
    cd /home/vpopmail/domains/;chmod 700 test.com test.com/gadfly test.com/gadfly/Maildir/

    11:.qmail file is writable錯誤如何解決?(xmy)
    A:用戶目錄下的.qmail文件組和其它用戶屬性不能可寫。
    至于vpopmail方式, 域目錄下的.qmail-*必須去掉寫屬性
    chmod go-w .qmail-*
    或者
    chmod 600 .qmail-*
    此外還需注意的文件屬性有libmysqlclient.so.10.0.0
    chmod 755 /usr/lib/libmysqlclient.so.10.0.0


    12: 每發完一封
    郵件后都會自動回復一封內容大概就是說發不出去的意思。自動回復的信件內容是這樣的
    .....
    <log@yourdomain>:
    Sorry, no mailbox here by that name. vpopmail (#5.1.1)


    A:你的qmail是用新的iceblood版本安裝的吧。

    這個版本的qmail,缺省情況下,每封出入的信件都會發到log用戶。

    如果想禁止這個動作,需要替換qmail-queue.
    將extra.h中的
    #define QUEUE_EXTRA "Tlog"
    #define QUEUE_EXTRALEN 5
    改成
    #define QUEUE_EXTRA ""
    #define QUEUE_EXTRALEN 0

    重編譯替換qmail-queue就好了。
    具體見life with qmail 的E.3

    如果想把進出的郵件都復制一份給一個特定的用戶,反過來修改就行了.

    代碼:

    將extra.h中的
    #define QUEUE_EXTRA ""
    #define QUEUE_EXTRALEN 0

    改成
    #define QUEUE_EXTRA "Tlog"
    #define QUEUE_EXTRALEN sizeof(QUEUE_EXTRA)


    把log改成你需要copy到的用戶,重新編譯qmail-queue就ok了。


    13.客戶端發信,報錯如下:
    553sorry,that domain isn't in my list of allowed rcpthosts (5.7.1)
    怎么解決?

    A:
    smtp server需要auth么?
    判斷方法如下:
    telnet localhost 25
    ehlo gadfly

    如果顯示有Auth....,就是需要Auth的。

    如果需要,客戶端是否配置auth了。如果沒有,發往外域,就是這個錯。

    如果不需要,客戶端的mailfrom是否是/var/qmail/control/rcpthosts中配置的域,如果不是,就是這個錯.


    14.發信有問題?如何檢查SMTP服務是否有問題?是否啟動了?
    A:最好的辦法就是直接連接smtp服務,如下:
    telnet your_server_ip 25
    用smtp命令去測試,具體的命令使用,參見
    http://www.chinaunix.net/forum/viewtopic.php?t=77544

    15.每次客戶端發信時,qmail總要試圖連接客戶端113端口,從而導致發現過程緩慢 在網上查到說,關掉Auther Idnet可以解決,但應該怎樣做呢?
    A: tcpserver的命令行加上 -H -R就好了

    16.配一臺qmail服務器,不管to的地址是什么,都轉發到另一臺SMTP服務器這個時候Qmail該如何設置呢??
    A:可以利用smtproutes
    rainbow.linuxfane.com:mail8.rainbow.jp
    :fw.rainbow.linuxfane.com:8088
    第一行的存在會將發給rainbow.linuxfane.com的郵件重定向到mail8.rainbow.jp主機
    第二行的存在會將任何不符合之前行條件的郵件重定向到fw.rainbow.linuxfane.com的8088端口,讓
    郵件安全的穿越防火墻
    另外,注意,如果不想收任何域的信件,virtualdomains也必須置空。

    17.smtp 使用auth patch后,出現以下一些問題:
    a.加認證報out of memory, 不加就過了。
    b. 如果帶域名,正常;不帶,報auth failure
    c.隨便輸入什么用戶名密碼都能過。
    怎么解決?

    A:參看http://www.chinaunix.net/forum/viewtopic.php?t=68469
    如果還是不行,建議換另外一個試試

    18. qmail中如何清空隊列(queue)中的所有消息?
    A:find /var/qmail/queue/ -type f -a -name [1-9]* -exec rm {} \;

    19. solaris下編譯ezmlm的時候,錯誤提示是/usr/include/time.h
    出現getdate錯誤,請問因該如何解決?(agang)

    A: 這是ezmlm的一個bug,只在solaris下編譯才出現:

    把第885和第1869行的修改:

    885 void getdate(struct msginfo *infop,int flagfail)
    1869 getdate(infop,0);
    為:
    885 void ezmlmgetdate(struct msginfo *infop,int flagfail)
    1869 ezmlmgetdate(infop,0);

    就可以編譯通過了。

    20.在REDHAT9.0下安裝qmail,POP3或smtp非常慢,為什么?
    A: pop或smtp的腳本中,tcpserver命令行中加上-H -R -l 0參數,防止客戶端域名反查,用戶indent反查和本地域反查。

    21.這段日志是什么意思?第一列比如 “@400000003f53417b37a114cc ”代表什么意思???
    我能直接轉換成具體的時間嗎?比如某年某月某日某分某秒嗎??
    或者是像 messages 那樣表示時間?

    引用:

    @400000003f304780381352e4 tcpserver: status: 0/40
    @400000003f3631091d390694 tcpserver: status: 0/40

    A:
    這是tai64格式的時間。 具體的描述見http://cr.yp.to/daemontools/tai64n.html

    你可以用

    tai64nlocal <log

    來顯示可讀的時間

    22.sina的mail問題,給新浪發信出現一下錯誤,如何解決?(artxing)
    代碼:

    553 Domain information in your 'HELO' dialog is not in the stadand format reque
    sted by RFC 821 and RFC 1035, please send your correct domain information accord
    ingly. 您的IP為國內IP,且與您的MTA服務器IP信息不符!Please contact our mail serv
    ice engineers on antispam@staff.sina.com.cn">antispam@staff.sina.com.cn. if you have other problems, or anyt
    hing disallowed by our system.. --------------------------------------------您會
    話中的helo沒有按照RFC 821 RFC 1035的標準,發送您正確的domain信息。Your IP addres
    s belonging to domestic domain, and your IP informaiton dismatch with the inform
    ation provided by the MTA server 如果存在其他問題或者不符合我們屏蔽要求,請發信
    到antispam@staff.sina.com.cn

    A:
    echo "我的郵件服務器的真實域名(A記錄)" > /var/qmail/control/helohost

    23.qmail下smtp不能發信,telnet也不成?
    # telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    Connection closed by foreign host.
    (wjger)
    A:
    檢查vchkpw, tcp.smtp.cdb文件的屬性是否正確。
    主要是在編譯過程中,不知為何tcp.smtp.cdb 丟失。另外還有一個體會是 mysql 中的grantq權限設置中的域名(vpopmail@localhost)應該和vmysql.h中的mysql服務器名是一致的。否則會造成 vadddomain 拒絕連接失敗的現象??!

    第三部分: sqwebmail
    1. 升級sqwebmail的注意事項? (redfox)

    A: 升級好后最好把qmail停止,把authdaemond重啟動
    /usr/local/qmail/webmail/libexec/authlib/authdaemond stop
    /usr/local/qmail/webmail/libexec/authlib/authdaemond start
    然后再啟動qmail,不然會出現一些莫名其妙的問題

    2.sqwebmail如何限制附件大小???(lovecelery)
    A: 我想把附件大小設成4M,但是默認是2M,方法如下:
    在configure的時候指定
    --with-maxformargsize=4194304 --with-maxmsgsize=4194304
    就可以了
    --with-maxformargsize是允許上傳的附件大小,不包含郵件正文的, --with-maxmsgsize是全部郵件的大小,正文+附件的

    3.如果我們有默認域,可以憑用戶名和密碼直接登陸,但是登錄后往往出現
    user@localhost.loacldomain,而不是你所想要的user@yourdomain.com,
    怎么解決?(oranger2001)

    A: 在/usr/local/share/sqwebmail下面建立一個hostname文件,默認情況下好像無此文件,文件里面加入 yourdomain

    這樣以用戶名進入就可以正常顯示你的后綴啦??!

    4.請問我如何設定sqwebmail上頁面的空閑停留時間?
    因為我登陸sqwebmail后,如果超過一定時間就會要求我重新登陸,我想把這個時間值改大一些。

    A:兩個辦法,
    1、sqwebmail編譯的時候,指定
    --enable-hardtimeout=7200 Hard session timeout (2hrs default)"
    --enable-softtimeout=1200 Inactivity timeout (20 min default)"

    后者是沒有活動下的session timeout,
    前者是有活動,也強制timeout。

    2、也可以給cgi指定環境變量SIGWEBMAIL_TIMEOUTSOFT,SIGWEBMAIL_TIMEOUTHARD來取代configure時缺省指定的時間。

    但是注意,這種方式一定要和cleancache.pl中的時間一致。



    第四部分: vpopmail + qmailadmin

    1: 如何通過vpopmail實現qmail郵件賬戶的數據庫管理?(netloafer)
    http://chinaunix.net/forum/viewtopic.php?t=1147

    2:能不能修改默認的域名?(peng)
    A:
    要更改haohao.com為默認域。
    方法:
    更改~qmail/control/
    defaultdomain
    me
    plusdomains
    逐一更改啟動pop3和 smtp的啟動腳本:
    修改:email.3sk.com為haohaoo.com
    在最上邊添加:export VPOPMAIL_DOMAIN=haohaoo.com

    只要你的dns server給虛擬域做好了設置。
    你的outlook and foxmail里的用戶輸入用戶的全名,就沒問題阿!
    不要用:master ,系統默認認為是master@email.3sk.com了
    要用master@haohaoo.com ,這樣才可以的。

    2.如何做Qmail用戶的備份?也就是如何將一個系統的Qmail用戶完整地轉移到另一個系統?(peng & netloafer)
    A:
    a.cdb配置的?那么請把/home/vpopmail/domains這個文件夾備份好就可以了。用戶和密碼文件,還有用戶信件都在這個目錄下。
    還應該備份/var/qmail/control下的相關配置文件。

    b.如果是以MYSQL數據庫方式來存儲用戶認證信息的
    只需要備份
    ~vpopmail/domain下的所有郵件
    /var/qmail/control的配置文件
    MYSQL數據庫目錄下的vpopmail庫目錄。一般是/var/lib/mysql(RPM)、/usr/local/mysql/data、/usr/local/mysql/var下面。


    3.以下錯誤怎么解決?
    warning: file name is symbolic link header.html warning: file name is symbolic link show_login.html warning: file name is symbolic link footer.htm. (xmy)

    A:
    出錯原因應該是htmlibdir目錄不能正確讀取,重新編譯qmailadmin:
    ./configure 的時候帶option--with-htmllibdir=....
    注意目錄的屬主uid和gid:vpopmail vchkpw

    4.安裝VPOPMAIL以后發現MYSQL里還是沒有VPOPMAIL的DB啊?
    A:
    vadddomain第一個域,才有vpopmail db

    5. 我用vadddomain時時提示:
    #/home/vpopmail/bin/vadddomain xxx.com
    Please enter password for postmaster:
    enter password again:
    Error: Domain already exists
    但是mysql里的確沒有vpopmail這個庫,怎么回事?

    A:

    原因是如果你先前用vadddomains加過域,后來又手工刪除數據庫,后來vadddomain加相同的域,就加不了,報
    "Error: Domain already exists "

    這是因為在/var/qmail/control/virtualdomains和/var/qmail/users/assign及cdb包含相應的域,vaddaddomains時會檢查這些文件,有就報這個錯。

    所以解決方法如下:
    1.刪除/var/qmail/control/virtualdomains和/var/qmail/users/assign相應的域信息

    2.運行/var/qmail/bin/qmail-newu重新生成cdb

    3.vaddadomains your.domain
    就好了

    所以為了避免這種麻煩,以后盡量用vdeldomain刪除域,而不是手工的刪除數據庫中的數據,容易造成不一致。

    4.編譯qmailadmin和vpopmail的時候報找不到mysql的頭文件或庫文件。(nicosoft)
    A:
    1.如果是rpm方式安裝的mysql,方法如下
    rpm -qa|grep -i mysql
    看看有沒有開發包,如果有,一般再devel中
    rpm -ql mysql-devel
    2。如果是源碼安裝
    --prefix=/usr/local/mysql
    的話那么你的
    indir=/usr/local/mysql/include/mysql
    libdir=/usr/local/mysql/lib/mysql
    如此類推

    5.能不能更改域的默認管理賬號?在qmail+vpopmail中,能不能更改域的默認管理賬號,怎么更改。默認是postmaster,能不能改成如,webmaster?
    A: vmoduser有個-a參數,可以賦予用戶管理權限。

    如果想全面禁用postmaster的特殊權限話,就只能改源代碼了。

    6.如何成批添加/導入用戶

    第一種方法(garfy):

    a.在home目錄下建立文件adduser.sh
    touch adduser.sh

    b.編輯adduser.sh
    ee adduser.sh 加入一下內容:

    while read line
    do
    echo $line
    /home/vpopmail/bin/vadduser $line $line
    done < user

    c.建立文件user,并輸入用戶
    touch user
    ee user

    11
    22
    33
    d.執行adduser.sh
    ./adduser.sh

    這樣user文件中輸入的用戶就添加到默認域中了,用戶名和密碼都是一樣的。

    第二種方法(gadfly):

    代碼:

    #!/bin/sh

    #batchadduser.sh: batch add mail user.
    #install step.
    #chmod u+x batchadduser
    #./batchadduser.sh domain datafile

    if [ $# -lt 2 ]
    then
        echo "usage: domain datafile"
        exit 1
    fi

    domain=
    datafile=
    addcmd=/home/vpopmail/bin/vadduser

    while read username passwd
    do

    $addcmd $username@$domain $passwd

    done < $datafile


    文件內容的格式
    username1 passwd
    username2 passwd2
    ............
    把內容保存到datafile文件中
    執行
    ./batchadduser.sh localhost.com datafile

    7、vpopmail make Error ,
    [root@localhost vpopmail-5.2.1]# make
    make all-recursive
    make[1]: Entering directory `/root/download/qmail/vpopmail-5.2.1'
    Making all in cdb
    make[2]: Entering directory `/root/download/qmail/vpopmail-5.2.1/cdb'
    make[2]: Nothing to be done for `all'.
    make[2]: Leaving directory `/root/download/qmail/vpopmail-5.2.1/cdb'
    make[2]: Entering directory `/root/download/qmail/vpopmail-5.2.1'
    gcc -I. -I/usr/local/mysql/include -g -O2 -Wall -c vpopmail.c
    vpopmail.c:26:20: string.h: 沒有那個文件或目錄
    ...
    make[2]: *** [vpopmail.o] Error 1
    make[2]: Leaving directory `/root/download/qmail/vpopmail-5.2.1'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/root/download/qmail/vpopmail-5.2.1'
    make: *** [all-recursive-am] Error 2
    ?

    A: 把glibc-devel安裝上先。

    告訴你們一個好辦法,以后缺什么文件,這樣找原因。

    例如我的機器沒問題,我就可以這樣找到原因,
    1.
    string.h這類的頭文件,一般都在/usr/include下
    find /usr/include -name string.h
    /usr/include/string.h

    2.
    rpm -qf /usr/lib/bcc/include/string.h

    pm -qf /usr/include/string.h
    這樣你就知道缺什么了。

    找的方法只是針對linux系統的情況,其它os都有相應的找軟件包的辦法。
    但是錯誤的原因的是一樣的,就是缺軟件包。

    有的時候make報ld .... -lz之類的錯誤,也是這個原因。

    可以用類似的辦法找錯誤

    8.把一郵件域的名字比如a.com更改為b.com,如何實現?(beck2000)
    A:以下幾個步驟:
    1、cd /home/vpopmail/domains
    mv a.com b.com

    2、把vpopmail數據庫的vpopmail表導出把所有a.com改為b.com,然后刪除vpopmail表,再導入.

    3、把把vpopmail數據庫的dir_control表的a.com改為b.com

    4、在/home/qmail/control 目錄下把 virtualdomains和rcpthosts下的的a.com改為b.com.

    5、在/home/qmail/users目錄下把assign文件的a.com改為b.com

    6、需要運行qmail-newu重新生成cdb。assign只是配置文件,cdb才是實際的數據文件。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>