默认情况下安装的包选择:Mail,Gcc,Editor组件及可!如果安装的图形界面的话,要修改启动项,只要修改:
[root@extmail ~]# cd /etc
[root@extmail etc]# vi inittab
打开后找到:
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
将id后面的数值进行相应的修改即可!
或者使用此命令:
# chkconfig saslauthd on (类似此将SMTP-Auth设置为自启动)
如果要配置防火墙:[root@extmail ~]# setup进去后,选择配置比如自定义:tcp:110端口,可以写成:POP3:tcp即可!
我们这里下载最新的postfix 2.3 的src rpm自己进行编译,postfix 2.3默认已经不支持sasl2验证了,所以我们要自己重新编译加入对sasl2的支持。下载并安装Postfix。
[root@localhost tmp]# rpm –e sendmail –nodeps
[root@localhost tmp]#useradd leeki.yan -s /sbin/nologin (增加一个用户,取消bash的权限,其它的用户可以依此添加)
cd /usr/local/src
wget [url]ftp://ftp.wl0.org/official/2.3/SRPMS/postfix-2.3.7-1.src.rpm[/url]
rpm -i postfix-2.3.7-1.src.rpm (做此操作时,会提示你某某用户组不存在,可不必理会)
cd /usr/src/redhat/SPECS
vi postfix.specs
搜索并找到下面几行修改如下:
%define with_cdb 0
%define with_ldap 0
%define with_mysql 0
%define with_mysql_redhat 0
%define with_pcre 0
%define with_pgsql 0
%define with_sasl 2
%define with_spf 0
%define with_dovecot 1
%define with_tls 1
%define with_tlsfix 2
%define with_vda 0
编译postfix rpm
rpmbuild -ba postfix.sepc
编译完成后安装postfix:
cd ../RPMS/i386/
rpm -ivh postfix-2.3.7-1.rhel4.i386.rpm
配置Postfix及相关组件
3.修改:/etc/postfix/main.cf文件
#myhostname = extmail.yanweihu.kmip.net // 找到此行,将等号后面的部分改写为主机名
myhostname = yanweihu.kmip.net // 变为此状态,设置系统的主机名
mydomain = cnprint.org // 变为此状态,设置域名(我们将让此处设置将成为E-mail地址“@”后面的部分)
myorigin = $mydomain // 变为此状态,将发信地址“@”后面的部分设置为域名(非系统主机名)
inet_interfaces = all // 变为此状态,接受来自所有网络的请求
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain // 变为此状态,指定发给本地邮件的域名
relay_domains = $mydestination // 变为此状态,定义允许转发的域名
mynetworks = 10.0.0.0/8, 127.0.0.0/8 // 变为此状态,指定内网和本地的IP地址范围
home_mailbox = Maildir/ // 变为此状态,指定用户邮箱目录
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) // 找到这一行,接此行添加如下行:
smtpd_banner = $myhostname ESMTP unknow // 添加这一行,不显示SMTP服务器的相关信息
smtpd_sasl_local_domain = $myhostname // 指定SMTP认证的本地域名(主机名)
smtpd_sasl_security_options = noanonymous // 不允许匿名的方式认证
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_unauth_destination message_size_limit = 15728640 // 规定邮件最大尺寸为15MB
[root@extmail lib]# cd /usr/lib/sasl2
[root@extmail sasl2]# ls
libanonymous.la libdigestmd5.so libplain.so.2
libanonymous.so libdigestmd5.so.2 libplain.so.2.0.19
libanonymous.so.2 libdigestmd5.so.2.0.19 libsasldb.la
libanonymous.so.2.0.19 liblogin.la libsasldb.so
libcrammd5.la liblogin.so libsasldb.so.2
libcrammd5.so liblogin.so.2 libsasldb.so.2.0.19
libcrammd5.so.2 liblogin.so.2.0.19 smtpd.conf
libcrammd5.so.2.0.19 libplain.la
libdigestmd5.la libplain.so
[root@extmail sasl2]#
确定其内容如下:
[root@extmail sasl2]# vi smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
启动saslauthd服务
[root@extmail sasl2]# service saslauthd start
[root@extmail sasl2]# service saslauthd status
saslauthd (pid 11815 11814 11813 11812 11806) is running...
6.POP3配置
[root@extmail sasl2]# vi /etc/dovecot.conf修改这个文件,加入下面的语句
protocols = imap imaps pop3 pop3s
[root@extmail sasl2]# service dovecot start 启动服务
[root@extmail sasl2]#chkconfig dovecot on 让系统启动进自动加载,若on改为OFF即不自动启动
a.修改/var/spool/postfix/Maildir文件夹权限
解决方法:
chown postfix /var/spool/postfix/Maildir
b.再次查看日志:测试从126的邮箱发过一封测试提示如下错误;
May 10 20:08:41 extmail postfix/smtpd[3935]: connect from m15-111.126.com[220.181.15.111]
May 10 20:08:41 extmail postfix/smtpd[3935]: warning: unknown smtpd restriction: "message_size_limit"
May 10 20:08:41 extmail postfix/smtpd[3935]: NOQUEUE: reject: RCPT from m15-111.126.com[220.181.15.111]: 451 4.3.5 Server configuration error; from=<[email]liuxiaoji456@126.com[/email]> to=<[email]leeki.yan@yanweihu.kmip.net[/email]> proto=SMTP helo=<m15-111.126.com>
解决方法:
修改main.cf里面的下面的参数
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination message_size_limit = 20480000
改成
message_size_limit = 20480000
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
即分成两行写!
目前测试:126发过来的信可以收到,说明是正常,也同时说明我们之前的说126根据IP要反解析域名,这个说法不是太确切!暂时还有待进一步测试!
设定 SpamAssassin 设定档
CODE:
#多少分才判为 SPAM
required_hits 5
report_safe 1
#若为 SPAM,是否设修改主旨
rewrite_subject 1
#修改主旨为 (当 rewrite_subject 是 1 的时候才会有用)
rewrite_header Subject [SPAM]
report_safe 1
use_terse_report 1
use_bayes 1
auto_learn 1
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
# as being possibly spam in a foreign language.
# - chinese english japanese
ok_languages zh en ja
# as being possibly spam in a foreign language.
ok_locales en ja zh
新增一个 spamfilter 使用者
这个 spamfilter 主要是 spamd 会使用的,所以请建立起来,当然这个帐号是不允许从外面登入的:
CODE:
root # useradd -s /bin/false spamfilter
[Copy to clipboard]
编写 filter script
CODE:
root # touch /usr/local/sbin/filter.sh
[Copy to clipboard]
CODE:
root # vi /usr/local/sbin/filter.sh
#!/bin/bash
exec /usr/bin/spamc -d 127.0.0.1 -f -p 783 -t 30 -e /usr/sbin/sendmail -i "$@"
exit $?
root # chmod 755 /usr/local/sbin/filter.sh
CODE:
root # vi /etc/postfix/master.cf
smtp inet n - n - - smtpd -o content_filter=postfixfilter
smtp unix - - n - - smtp -o content_filter=postfixfilter
[Copy to clipboard]
postfixfilter unix - n n - - pipe flags=Rq user=spamfilter
argv=/usr/local/sbin/filter.sh -f ${sender} -- ${recipient}
root #
CODE:
root # vi /etc/postfix/master.cf
#把 header_checks 和 body_checks 注解起来
#header_checks = regexp:/etc/postfix/header_checks
#body_checks = regxp:/etc/postfix/body_checks
root #
CODE:
root # postfix stop; sleep 3; postfix start
root # service spamassassin start
如何测试呢看是否成功,如何成功会发一封MAIL。标题被插有SPAM信息(可以查找到下面的文件,将其内容复制进去发送一下,再进去maillog里查看分值,得分为5的被判为SPAM!
find / -name sample_spam.txt 查看sam*的所有文件
score USER_IN_BLACKLIST 20.00 # From: address is in the user's black-list
score USER_IN_WHITELIST -80.0 # From: address is in the user's white-list
# Use white list
whitelist_from *@yanweihu.kmip.net
whitelist_from *@trinet.com.cn
9.修改系统时钟
比如将系统时间设定成2005年8月8日的命令如下。
将系统时间设定成下午8点12分0秒的命令如下。
#date -s 20:12:00
因此使用date -s修改完成之后,马上重新启动计算机,就有可能修改的系统
时间没有写入CMOSS中,所以最好
#clock -w
这个命令强行写入CMOS。
Cron服务配置详解 (注意:记得如果是crontab是侦对某个用户的!比如添加crontab -u root -e 要指定某个用户去执行!
参考链接:[url]http://www.linuxaid.com.cn/articles/3/8/387630123.shtml[/url]
摘要
Linux定时任务系统 Cron 入门(2005-03-10 09:30:10)
--------------------------------------------------------------------------------
By lanf, 出处:[url]www.xiaoxiang.net[/url]
作者:Fred Huang
刚做了一个备份的模块,后来师傅提示最好再加一个自动备份的功能,于是研究起来Cron这个服务来。Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond start
现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:
1.直接用crontab命令编辑
cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
分钟 (0-59)
小時 (0-23)
日期 (1-31)
月份 (1-12)
星期 (0-6)//0代表星期天
除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:
每天早上6点
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。
每两个小时
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3 command line
1月1日早上4点
0 4 1 1 * command line
每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。
2.编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
Spamassassin (/etc/mail/spamassassin/local.cf )
# NOTE: NOT COMPATIBLE WITH VERSIONS 2.5 or 2.6
# See [url]http://www.yrex.com/spam/spamconfig25.php[/url] for earlier versions
# Generated by [url]http://www.yrex.com/spam/spamconfig.php[/url] (version 1.50)
required_hits 6.3
rewrite_header Subject ****SPAM(_SCORE_)****
# 要如何处理垃圾邮件。如果邮件还会经过防毒程序的扫描处理,所以必须设定为 0。
# 0:将信息写入邮件表头。
# 1:将垃圾邮件转为附件。
# 2:将垃圾邮件转为纯文字附件。
report_safe 0
use_terse_report 0
use_bayes 1
auto_learn 1
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
whitelist_from *@yahoo.com.tw *@yahoo.com.hk *@yahoogroups.com.hk
whitelist_from [email]rika@rika.idv.tw[/email]
# as being possibly spam in a foreign language.
# - chinese
ok_languages zh en
# as being possibly spam in a foreign language.
ok_locales zh en
score HEADER_8BITS 0
score HTML_COMMENT_8BITS 0
score SUBJ_FULL_OF_8BITS 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
header __FROM_TEATIME Received =~ /from test.com.cn/i
header __FROM_TEATIME_IP Received =~ /\[12\.34\.56\.78\]/
meta FROM_TEATIME_BUT_IP_ERROR (__FROM_TEATIME)
describe FROM_TEATIME_BUT_IP_ERROR From test.com.cn but ip not match
score FROM_TEATIME_BUT_IP_ERROR 8
12.让chinese_rules.cf自动更新
修改:
/etc/crontab
增加
0 0 1 * * wget -N -P /usr/share/spamassassin [url]www.ccert.edu.cn/spam/sa/Chinese_rules.cf;service[/url] postfix restart;service spamassassin restart
表示每周自动更新且重新启动相关服务
13.Postfix + SpamAssassin 安裝手冊
SpamAssassin 是一套用來協助過濾 spam 的程式,用 perl 寫成,會針對信件中特定的 pattern 給予不同的分數,當分數超過指定的值後,就會被當作 spam,根據設定不同,會在信件 header 或 subject 的地方增加些東西。
請先安裝 Postfix,請參考 PostfixInstall 的安裝說明,然後用 FreeBSD ports 將 SpamAssassin 安裝起來:
make clean install clean
設定 Postfix 的部分
於 /usr/local/etc/postfix/master.cf 內修改 smtp 的設定:
並於同一個檔案的最後面加上:
argv=/usr/local/sbin/filter.sh -f ${sender} -- ${recipient}
然後新增 /usr/local/sbin/filter.sh 這個檔案:
exec /usr/local/bin/spamc -d 127.0.0.1 -f -p 783 -t 30 -e /usr/local/sbin/sendmail -i "$@"
接著請讓 /usr/local/sbin/filter.sh 變成可以執行:
設定 Postfix 過濾掉 Spam
在 /usr/local/etc/postfix/main.cf 內設定:
然後新增 /usr/local/etc/postfix/header-checks 這個檔案:(如果已經有了,把這行加到最後面)
設定 SpamAssassin
各個詳細的設定請參考 Mail::SpamAssassin(3), Mail::SpamAssassin::Conf(3), spamd(1), spamc(1)。
再修改這個檔案裡面 spamd 的參數:
然後新增 /usr/local/etc/spamassassin/default.prefs 這個檔案:(底下是很簡單的範例,請斟酌使用,超過 5.0 分會被當 spam,並在信件 subject 加上 *****SPAM***** 字樣)
required_hits 5.0
score HEADER_8BITS 0
score HTML_COMMENT_8BITS 0
score SUBJ_FULL_OF_8BITS 0
score UPPERCASE_25_50 0
score UPPERCASE_50_75 0
score UPPERCASE_75_100 0
ok_languages all
ok_locales all
header FOXMAIL X-Mailer =~ /FoxMail /
describe FOXMAIL Foxmail
score FOXMAIL 3.5
describe UNSUBSCRIBE_ZH Body contain unsubscribe msg in chinese
score UNSUBSCRIBE_ZH 0.5
describe WINDOWOPEN JavaScript: Windows.Open
score WINDOWOPEN 3.5
重新啟動
您需要讓 spamd 跑起來後,重新啟動 Postfix:
postfix reload
修改/etc/postfix/main.cf,加上一句,即启用邮件头检查:
#header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks
修改/etc/postfix/header_checks文件增加!
/^X-Spam-Status: Yes/ DISCARD Byebye Spam, we don't like you
在規則設定檔裡面 ( 就是 header_checks 與 body_checks ) 只要是 # 代表該行為註解,系統或直接略過;
所謂的過濾規則即是 Header 與 body 裡面的『關鍵字』,例如我不想讓 192.168.100.5 這個 IP 寄件到我的 mail server ,那麼這個 From:.* 192.168.100.5 就是一條規則了!那個 .* 代表什麼意思呢?他代表『沒有或多個任意字元』的意思~更詳細的說明請參考各個正規表示法的標準說明了!常見的正規表示法特殊字元與意義為:
『.』:代表任意字元
『\』:代表跳脫字元,可以讓後面接的一個字元變成一般字元;
『*』:代表重複零個或多個前一個 RE 的字元,例如『.*』則代表任意零個或多個字元的意思;
『^』:代表『這一行的第一個字元需要符合規則』的意思;
『$』:代表這一行的最後一個字元必須要符合這個字元的意思,
單一規則的設定方法為:
/規則/ 動作 顯示在登錄檔裡面的訊息
請注意,要使用兩個『 / 』將規則包起來喔!舉個例子來說明:例如我想要 (1)抵擋掉標題為 A funny game 的信件,(2)並且在登錄檔裡面顯示 drop header deny,我可以這樣寫:
/^Subject:.*A funny game/ DISCARD drop header deny
在預設的規則當中,大小寫是視為相同的;
如果有兩條以上的規則,那麼就必須要使用 if 了,例如底下的案例:
if /^Content\-Type:.*audio.*x\-midi/
/^.*name\=.*\.scr/ DISCARD drop the header inavalid
endif
上面的意思是,當一封郵件裡面同時包含『 Content-Type: audio.x-midi 』與『name=*.scr』時,該封信件就會被丟棄了!那麼如果有三條以上的規則時呢?呵呵!就是使用多個 if 來進行啦!
if /rule1/
if /rule2/
/rule3/ 動作 顯示字眼
endif
endif
不過請特別留意,這個 if .... endif 的設定我僅在 2.x 版本上面試過,是沒有問題的,不過,已經有很多的朋友提出說,在 1.xx 版本上面執行時會有問題發生,所以如果您的 Postfix 不是 2.xx 版本,那麼底下鳥哥列出的兩個範例就參考看看即可,不可直接套用喔!
關於動作有底下幾個動作:
REJECT :將該封信件退回給原發信者;
WARN :將信件收下來,但是將該封信的基本資料記錄在登錄檔內;
DISCARD:將該封信件丟棄,並不給予原發信者回應!
一般來說我是比較喜歡以 DISCARD 將信件直接丟棄的啦! ^_^
此外,請特別留意,在各主要 Linux distribution 釋出的 1.xx 版本中,並無法使用 DISCARD 的規則喔!所以您只能使用 REJECT 了!底下列出鳥哥的兩個範本:
[root@extmail squirrelmail]# cd /usr/share/squirrelmail/config
[root@extmail squirrelmail]# ./conf.pl
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages
S Save data
Q Quit
主要修改1选项里面Server Settings
-------
1. Domain : yanweihu.kmip.net
2. Invert Time : true
3. Sendmail or SMTP : SMTP
B. Update SMTP Settings : localhost:25
C Turn color off
S Save data
Q Quit
---------------------------------------------------------
Language preferences
1. Default Language : en_US 改成zh_CN
2. Default Charset : iso-8859-1 改成gb2312
3. Enable lossy encoding : false
C Turn color off
S Save data
Q Quit
在浏览器里直接输入域名就自动链接到小松鼠WEB页的地址,方法如下:
[root@extmail conf]# ls
httpd.conf magic Makefile ssl.crl ssl.crt ssl.csr ssl.key ssl.prm
[root@extmail conf]# vi httpd.conf
AddDefaultCharset UTF-8
# AddDefaultCharset UTF-8
# DocumentRoot "/var/www/html"
DocumentRoot "/usr/share/squirrelmail"
今天终于把squirrelmail的附件大小限制搞定了。主要方法是:修改php.ini
cd /etc
vi /php.ini
max_execution_time=30 ;//改为600(增加处理脚本的时间限制)
max_input_time=600 ;//最大输出时间600s
memory_limit=8M ;//改为100M(这样才能发送100M以下的附件)
register_global=on ;//个人认为没必要打开
post_max_size=2M ;//php可接收的post的大小
file_uploads=on ;//允许上传文件
upload_max_filesize=2M ;//改为100M
session_auto_start=1 ;//seession自动启动(我没改)
修改SquirrelMail 附件的大小到10M
如果您要修改SquirrelMail 附件的大小,需要直接修改 /etc/php.ini 文件:
post_max_size = 10M ; //php可接受的 post 方法大小 10M
upload_max_filesize = 10M ; //最大上载文件10M
message_size_limit = 14336000 (附件大小,14M,实际为10M的文件)
virtual_mailbox_limit = 102400000 (邮箱空间100M)
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
17.解决小松鼠邮件内容长的时候,不能自动换行!
参考:[url]http://www.taoran.net/tech/squirrelmail.html[/url]
使用技巧一:让长的邮件内容自动换行
用SquirrelMail显示长的邮件内容时有一个缺陷,就是不会自动换行。查看源文件后,发现
问题有两点:一是在显示邮件内容时使用的是“pre”标识,二是表格TD都是不定长的。
要让长的邮件内容能自动换行,需要做如下改动:
方法:
vi /usr/share/squirrelmail/functions/mime.php
找到下面的内容:
$body = '<pre>' . implode("\n", $body_ary) . '</pre>';
修改为:
$body = implode("<BR>\n",$body_ary);
找到下面的内容:(对于新版本来说的)
html_tag( 'td', '<br>'. $messagebody."\n", 'left')
修改为:
html_tag( 'td', '<br>'. $messagebody."\n", 'left','','width=580')
如果是老版本:
老版本:
找到" <TR><TD BGCOLOR=\"$color[4]\" WIDTH=\"100%\">\n"
修改为" <TR><TD BGCOLOR=\"$color[4]\" WIDTH=\"580\">\n"
答:不会,在/var/cache/yum里,命令看置顶,一般用yum clean all全清空
[root@extmail ~]# rpm --import [url]http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt[/url]
[root@extmail ~]# vi /etc/yum.repos.d/dag.repo
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
includepkgs=clamd clamav*
原转载的目的就是因为附件文件名为中文时,下载时,文件名就乱码!
回到主菜单,选择“10. Languages”,将“ Default Language”改成“zh_TW”,“Default Charset”改成“utf-8”。保存退出。
出现402什么的字眼,可能是selinux把权限限制了,把selinux关了就行了(在/etc/selinux/config,设置为DISABLE就行了)
这里要提一下squirrelmail汉化:
小松鼠邮件系统汉化
小松鼠本身支持很多语言,可下载相应的语言包。可到其主页去下载
wget [url]http://switch.dl.sourceforge.net/sourceforge/squirrelmail/zh_CN-1.4.4-20050308.tar.gz[/url]
8.3 汉化包安装
tar zxvf zh_CN-1.4.4-20050308.tar.gz
解压之后有locale目录,把locale下的文件移到squirrelmail目录下的locale目录下就行了
vi config.php
................................................................................................
..........................................................................................................
...........................................................................................................
..........................................................................................................
$theme[48]['NAME'] = 'Classic Blue 2';
$theme[49]['PATH'] = SM_PATH . 'themes/powder_blue.php';
$theme[49]['NAME'] = 'Powder Blue';
$theme[50]['PATH'] = SM_PATH . 'themes/techno_blue.php';
$theme[50]['NAME'] = 'Techno Blue';
$theme[51]['PATH'] = SM_PATH . 'themes/turquoise.php';
$theme[51]['NAME'] = 'Turquoise';
$ldap_server[0] = array(
'host' => '192.168.10.220',填上LDAP服务器的IP
'base' => 'dc=webmail,dc=print68,dc=com',填上LDAP服务器的域名
'name' => '192.168.10.220',填上LDAP服务器的名字
'port' => 389,填上LDAP的端口,这是默认的
'charset' => 'utf-8'语言
);
$abook_global_file_writeable = false;
$abook_global_file_listing = true;
$abook_file_line_length = 2048;
执行./configure
#选择 “6. Address Books”=>“1. Change LDAP Servers”=>然后自己按提示选择
# Sample security restrictions
# Require integrity protection (divvent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64
allow bind_v2 在这里加上这行,让他支持V2版本
# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
310 // $fullname = $this->charset_decode($row['cn'][0]); //預設值
311 $fullname = iconv("utf-8","big5",$row['cn'][0]); //將 LDAP 查到的 utf-8 中文資訊轉換成 big5 在傳
264 //$expr = $this->charset_encode($expr); //预设值
265 $expr = iconv("big5","utf-8",$expr); //输入搜寻条件为 big5 但转換成 utf-8 在去查 LDAP
使用 IE 登入 SquirrelMail 後收到中文檔名的附件按下 Download 後原來的中文檔名檔案下載後變成亂碼檔名
#vi /usr/local/www/data/squirrelmail/src/download.php
102 $filename = charset_encode($filename,$default_charset,false); //加在這行下面
103 $filename = iconv("big5","utf-8",$filename); //加入此行
让长的邮件内容自动换行
问题有两点:一是在显示邮件内容时使用的是“div”标识,二是表格TD都是不定长的。
要让长的邮件内容能自动换行,需要做如下改动:
vi functions/mime.php
-- $body = '<div>' . implode("\n", $body_ary) . '</div>';
++ $body = implode("<BR>\n",$body_ary);
vi src/read_body.php
老版本:
-- " <TR><TD BGCOLOR=\"$color[4]\" WIDTH=\"100%\">\n"
++ " <TR><TD BGCOLOR=\"$color[4]\" WIDTH=\"580\">\n"
-- html_tag( 'td', '<br>'. $messagebody."\n", 'left')
++ html_tag( 'td', '<br>'. $messagebody."\n", 'left','','width=580')