Hostname这里说的 hostname 是指使用 'hostname -f' 命令打印出来的系统主机名,例如: $ hostname -f mail.example.com
在 Ubuntu 系统中,主机名的设置涉及到两个文件:
用你熟悉的编辑器编辑 /etc/hostname 文件 $cat /etc/hostname mail 编辑 / /etc/hosts 文件 $cat /etc/hosts 127.0.0.1 mail.example.com mail localhost localhost.localdomain 检查FQDN Name设置, Hostname的修改,必须重新启动机器才能生效 # hostname -f mail.example.com 设置源使用稳定的版本,需要'main' 和 'universe' , 使用安装系统的时候ubuntu缺省的源,也是没有问题的。 如果觉得163速度慢,大家可以直接换成sohu,就可以使用。
$ cat /etc/apt/source.list deb http://mirrors.sohu.com/ubuntu hardy main universe deb http://mirrors.sohu.com/ubuntu hardy-updates main universe deb http://mirrors.sohu.com/ubuntu hardy-security main universe deb http://ppa./iredmail/8.04/ubuntu hardy main 导入 PPA的 gpg key # apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xd9226c1a29511386b3b9f8
$ cat /etc/apt/source.list deb http://mirrors.sohu.com/ubuntu jaunty main universe deb http://mirrors.sohu.com/ubuntu jaunty-updates main universe deb http://mirrors.sohu.com/ubuntu jaunty-security main universe
$ cat /etc/apt/sources.list deb http://mirrors.sohu.com/ubuntu karmic main universe deb http://mirrors.sohu.com/ubuntu karmic-updates main universe deb http://mirrors.sohu.com/ubuntu karmic-security main universe
#sudo apt-get update
|
Protocol | Unencrypted port | TLS Port | SSL Port |
SMTP | 25 | 587 | 465 |
POP3 | 110 | 110 | 995 |
IMAP | 143 | 143 | 993 |
这个faq会不定期更新,最新的FAQ,大家可以直接访问 http://www./faq.html
邮件系统的备份,可以考虑采用rsync, unison,如果数据量大,可以参考文章 http://blog./2008/04/24/sync/
灰名单,是有效阻止垃圾邮件的手段,原理是当一个新的邮箱地址发邮件过来,都会先拒绝2次,然后第三次才会接收下来。一般发垃圾邮件的人,因为队列太长,就不会再尝试投递。
灰名单会导致第一次发送延迟,不过第二次以后就没有问题。如果希望停止灰名单
编辑/etc/postfix-policyd.conf
# 1=on 0=off GREYLISTING=0 #把1改成0
重新启动policy服务
# /etc/init.d/postfix-policyd restart
iRedmail的安装过程,我们设置了root的alias,如果我们希望修改邮箱地址。
编辑/etc/postfix/aliases 改成你需要的邮箱地址。以后系统的警告邮件就会发送到新的邮箱。
# See man 5 aliases for format postmaster: root clamav: root root: www@18demo.com policyd: www@18demo.com amavis: root
修改后,需要运行下面命令才可以生效。
# postalias /etc/postfix/aliases
这个时候可以测试一下,给root发一封邮件,是否生效
cd iRedMail-0.5.1 mail -s "test" root < iRedMail.tips
iRedmail 是通过Amavisd-new + alterMIME 实现出站的邮件都添加免责声明。alterMIME支持Per-domain,Sub-domain,Per-user添加免责声明,同时支持txt和 html格式。缺省情况下,iRedMail没有启用。
# ------------ Disclaimer Setting --------------- # Uncomment this line to enable singing disclaimer in outgoing mails. $defang_maps_by_ccat{+CC_CATCHALL} = [ 'disclaimer' ]; #把注释去掉
#echo 'Testing disclaimer.' > /etc/postfix/disclaimer/default.txt
# /etc/init.d/amavis restart
这个时候,所有往外发送的邮件,都会在底部加上 'Testing disclaimer.'
当你希望卸载或者重新安装iredmail,那么可以利用iRedMail提供的工具,快速卸载iredmail各个组件,进行重新安装
# cd iRedMail-0.5.1/tools/ # bash clear_iredmail.sh
按照提示进行就可以,当你重新安装的时候,你还是需要运行下载脚本,再运行安装脚本。
iRedMail提供脚本,可以让用户快速添加用户
你可以编辑create_mail_user_MySQL.sh,修改默认值,如果你安装的时候修改的邮件的存储路径,那么你必须修改脚本的 STORAGE_BASE_DIRECTORY
创建邮箱用户的缺省密码是和用户名相同
# cd iRedMail-0.5.1/tools/ # bash create_mail_user_MySQL.sh exmple.com user1 user2 user3
这个时候,会创建output.sql 文件
# mysql -uroot -p mysql> USE vmail; mysql> SOURCE /path/to/output.sql;
使用create_mail_user_OpenLDAP.sh脚本,可以快速创建ldap的邮件用户,我们需要修改脚本
创建邮箱用户的缺省密码是和用户名相同
STORAGE_BASE_DIRECTORY="/var/vmail/vmail01" #如果你安装的时候修改的邮件的存储路径 LDAP_SUFFIX="dc=iredmail,dc=org" #你的ldap SUFFIX BINDPW='passwd' #ldap管理员cn=manager 密码
运行脚本,创建用户
# bash create_mail_user_OpenLDAP.sh example.com user1 user2
要注意的是:下面的设置,是可以让你的服务器是可以发送大附件,也需要对方的服务器能够接收大附件,否则还是无法发送出去。
如果你是希望邮件客户端发送大附件,那么你只需要运行
# postconf -e message_size_limit='104857600' #把附件增加到100m
重启postfix服务
# /etc/init.d/postfix restart
如果希望webmail,发送大附件,那么你还需要多修改2个地方
1:编辑/etc/php5/apache2/php.ini 文件
upload_max_filesize = 100M; post_max_size = 100M;
2:修改/usr/share/apache2/roundcube/.htaccess 文件
php_value upload_max_filesize 100M php_value post_max_size 100M
重启apache服务
# /etc/init.d/apache2 restart
编辑/etc/postfix/main.cf 文件,在smtpd_recipient_restrictions 下添加下面内容
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unlisted_recipient, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname, check_policy_service inet:127.0.0.1:10031 ##添加下面内容 reject_rhsbl_sender dsn.rfc-ignorant.org, reject_rbl_client dnsbl.njabl.org, reject_rbl_client dnsbl.ahbl.org, reject_rbl_client bl.spamcop.net, reject_rbl_client zen.spamhaus.org,
重启postfix服务
# /etc/init.d/postfix reload
如果希望停用杀毒和发垃圾的功能,编辑/etc/postfix/main.cf 文件,到把最底下的这行注释掉
content_filter = smtp-amavis:[127.0.0.1]:10024
这个时候,postfix接收到的邮件,就不会再交给amavis处理,就可以把amavisd, clamd, freshclam服务停止。不过要注意的是这个时候DKIM的功能,也是无法使用,因为iredmail的DKIM是通过amavis来实现的。
rolaod postifx服务
#update-rc.d amavis purge #update-rc.d clamav purge # /etc/init.d/postfix reload
目前iRedMail还没有集成fetchmail的功能,如果你需要使用fetchmail,你可以自己集成
apt-get install fetchmail
START_DAEMON=yes #把no改为yes
set daemon 300 #5分钟取一次邮件 set syslog set postmaster root set no bouncemail defaults: timeout 300 antispam -1 batchlimit 100 #用户:shakechen 也可以是 shakechen@126.com 密码是:12345678 本地的邮箱:www@18demo.com poll pop3.126.com protocol POP3 user shakechen there with password 12345678 is www@18demo.com here
最后一行意思是把126邮箱里的用户的邮件,投递到本地的邮箱账号 www@18demo.com
chmod 600 /etc/fetchmailrc chown fetchmail /etc/fetchmailrc
/etc/init.d/fetchmail start
# tail /var/log/syslog Dec 7 16:01:36 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). Dec 7 16:01:37 mail fetchmail[4179]: sleeping at Mon Dec 7 16:01:37 2009 for 30 seconds Dec 7 16:02:07 mail fetchmail[4179]: awakened at Mon Dec 7 16:02:07 2009 Dec 7 16:02:08 mail fetchmail[4179]: 723 messages (723 seen) for shakechen at pop3.126.com (36923210 octets). Dec 7 16:02:09 mail fetchmail[4179]: sleeping at Mon Dec 7 16:02:09 2009 for 30 seconds
如果你修改了计算机名字或者希望使用自己的信息创建自己的ssl key。
# wget http://iredmail./hg/iRedMail/tools/generate_ssl_keys.sh
# SSL key. export SSL_CERT_FILE="${ROOTDIR}/certs/iRedMail_CA.pem" export SSL_KEY_FILE="${ROOTDIR}/private/iRedMail.key" export TLS_COUNTRY='CN' export TLS_STATE='GuangDong' export TLS_CITY='ShenZhen' export TLS_COMPANY="${HOSTNAME}" export TLS_DEPARTMENT='IT' export TLS_HOSTNAME="${HOSTNAME}" export TLS_ADMIN="root@${HOSTNAME}"
# bash generate_ssl_keys.sh SSL keys were generated: - /root/certs/iRedMail_CA.pem - /root/private/iRedMail.key
/etc/ssl/private/iRedMail.key /etc/ssl/certs/iRedMail_CA.pem
如果用户是使用邮件客户端,是无法收取到junk的邮件,所以iredmail缺省是让spam的邮件进入收件箱。如果我们希望让spam的邮件,不进入收件箱,直接存在垃圾邮箱的文件夹里。
# cd /var/vmail/sieve # cp dovecot.sieve.sample dovecot.sieve
# /etc/init.d/dovecot restart
如果我们装完iremdail后,希望修改hostname(FQDN),那么我们需要修改下面相关的内容。
装好系统后,如何评估系统的发垃圾和病毒能力?总不能自己给自己发垃圾邮件和病毒邮件吧。
http://www./emailsecuritytest/
我们可以通过GFI来测试我们邮件系统的发垃圾和病毒能力。
当你的邮箱验证通过后,他会发送垃圾邮件和病毒邮件到你的邮箱,你就可以检测到邮件系统的反垃圾和病毒查杀能力。
http://www.antispam-ufrj.pads./
测试邮件服务器是否被设成公开转发站
postqueue -p
postsuper -d MessageID
mailq | tail +2 | awk ‘BEGIN { RS = “” } # $7=sender, $8=recipient1, $9=recipient2 { if ($7 == “info@otherdomain.com” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d -
mailq | tail +2 | awk ‘BEGIN { RS = “” } # $7=sender, $8=recipient1, $9=recipient2 { if ($8 == “you@yourdomain.com” && $9 == “”) print $1 } ‘ | tr -d ‘*!’ | postsuper -d -
mailq | grep senderhostname | awk ‘{ print $1′} | postsuper -d -
postsuper -h ALL
当处理完后,再把队列移回来
postsuper -r ALL
参考文章 http://www./linux/server/manage-the-postfix-mailqueue-with-postsuper-postqueue-und-mailq/
测试邮件,可以用客户端, 也可以使用命令行测试,这样更加直接.
我们需要把我们的登录账号和密码一起编码
user:www@example.com
pass: iredmail
# perl -MMIME::Base64 -e 'print encode_base64("www\@example.com\0www\@example.com\0iredmail")'; d3d3QGV4YW1wbGUuY29tAHd3d0BleGFtcGxlLmNvbQBpcmVk bWFpbA==
# telnet localhost 25 #在服务器上telnet到本地,下面的是正常输出 Trying::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 u910.example.com ESMTP iRedMail (Ubuntu) ehlo example.com #握手 250-u910.example.com 250-PIPELINING 250-SIZE 15728640 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN auth plain d3d3QGV4YW1wbGUuY29tAHd3 d0BleGFtcGxlLmNvbQBpcmVk bWFpbA== # 输入base 64后的用户名和密码 235 2.7.0 Authentication successful mail from:<www@example.com> #使用 www@example.com 账号对外发送邮件 250 2.1.0 Ok rcpt to:<shake.chen@gmail.com> #发送邮件到 shake.chen@gmail.com 这个邮箱 250 2.1.5 Ok data #输入data命令后,下面就是邮件的内容 354 End data with <CR><LF>.<CR><LF> to:shake.chen@gmail.com #这是邮件里显示的发送给谁。 from:www@example.com #那个账号发送过来的 subject: test by telnet smtp #邮件的主题 test , just a test ,check the subject whetehr working. . #写完邮件后,输入一个点,回车,就表示邮件完成。 250 2.0.0 Ok: queued as B6B4820EC9 quit #退出 221 2.0.0 Bye Connection closed by foreign host.
可以在远程使用命令行或者本地来测试pop3
# telnet localhost 110 #登录110端口 Trying::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user www@example.com #输入登录的邮件账号 +OK pass iredmail #账号的密码,这里直接输入密码就可以 +OK Logged in. list #查看邮箱里的邮件 +OK 4 messages: 1 1182 2 6195 3 1588 4 878 . retr 1 #显示第一封邮件内容 quit #退出 +OK Logging out. Connection closed by foreign host.
|