首页 > 系统服务 > mail相关

先大概说一下ecartis支持虚拟域的工作原理,它首先通过 virtual_alias_maps将邮件列表地址;例如lists@list.yourdomain.com,指向到一个本地用户,例如lists-yourdomain.com,然后再通过alias_maps将本地用户转交给ecartis来处理,生成地址列表,然后ecartis会通过某个特定账号例如ecartis@yourdomain.com,将发给列表地址的邮件提交给 postfix处理。

蚊子的环境:centosextmail+extman+sasl+postfix+apache

2,系统所需软件安装包

2.1,需要软件包
ecartis-1.0.0-snap20060813.tar.gz
获取方式:
    a,连接到任意一台freebsd的机器上
    b,# cd /usr/ports/mail/ecartis
    c,# make fetch
    d,保存/usr/ports/distfiles/ecartis-1.0.0-snap20060813.tar.gz此文件

如果手上没有bsd的机器,可以去http://ftp.ncku.edu.tw/Linux/Debian/debian/pool/main/e/ecartis/这个地址下载相应的gz包

3,maillist服务软件安装

3.1,ecartis安装
# tar zxvf ecartis-1.0.0-snap20060813.tar.gz
# cd ecartis-1.0.0
# cd src
# cp Makefile.dist Makefile
# make
# make install

4,maillist服务配置

4.1,ecartis文件配置
# mkdir /usr/local/ecartis
#
# cd ecartis-1.0.0
# cp ecartis.cfg.dist /usr/local/ecartis/ecartis.cfg
# cp -r modules queue templates lists /usr/local/ecartis/

4.2,ecartis配置
# /usr/local/ecartis/ecartis -newlist test   ;创建一个名为test的maillist
# vi /usr/local/ecartis/ecartis.aliases
    test: "|/usr/local/ecartis/ecartis -s test"
    test-request: "|/usr/local/ecartis/ecartis -r test"
    test-repost: "|/usr/local/ecartis/ecartis -a test"
    test-admins: "|/usr/local/ecartis/ecartis -admins test"
    test-moderators: "|/usr/local/ecartis/ecartis -moderators test"
    test-bounce: "|/usr/local/ecartis/ecartis -bounce test"

# vi /usr/local/ecartis/ecartis-virtual.aliases
    test@wenzizone.cn test
    test-request@wenzizone.cn test-request
    test-repost@wenzizone.cn test-repost
    test-admins@wenzizone.cn test-admins
    test-moderators@wenzizone.cn test-moderators
    test-bounce@wenzizone.cn test-bounce

# postmap /usr/local/ecartis/ecartis-virtual.aliases    ;生成db文件
# postalias /usr/local/ecartis/ecartis.aliases        ;生成db文件

# mkdir /usr/local/ecartis/lists/SITEDATA

# vi /usr/local/ecartis/ecartis.cfg
    listserver-address = ecartis@wenzizone.cn
    listserver-admin = admin@wenzizone.cn
    listserver-root = /usr/local/ecartis
    listserver-conf = /usr/local/ecartis
    listserver-data = /usr/local/ecartis
    listserver-modules = /usr/local/ecartis/modules
    cgi-template-dir = /usr/local/ecartis/templates
    list-owner = admin@wenzizone.cn
    lsg2-cgi-url = http://youdormain/ecartis/lsg2.cgi

# chown -R vuser.vgroup /usr/local/ecartis/        ;分配权限,vuser和vgroup是extmail执行cgi的用户和组

4.3,postfix配置
# vi /etc/postfix/main.cf
    alias_maps = hash:/usr/local/ecartis/ecartis.aliases
    virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,hash:/usr/local/ecartis/ecartis-virtual.aliases
# postfix reload

4.4,web配置
# vi /etc/httpd/conf.d/extmail.conf
    scriptalias /ecartis/ /var/www/extsuite/ecartis/cgi/

# vi /var/www/extsuite/ecartis/cgi/lsg2.cgi
    #!/bin/sh

    /usr/local/ecartis/ecartis -lsg2

# chmod 755 /var/www/extsuite/ecartis/cgi/lsg2.cgi
# chown vuser.vgroup /var/www/extsuite/ecartis/cgi/lsg2.cgi

参考:http://www.extmail.org/forum/viewthread.php?tid=664&highlight=ecartis

阅读全文

蚊子这两天写脚本,脚本执行的结果需要发邮件给我,通常我会把结果内容通过cat的方式管道传递给mail命令然后作为邮件的内容发出来,但这不是蚊子所要的,蚊子希望把结果作为附件发送出来。同事告诉我可以使用uuencode命令来发送,于是蚊子网上搜了一下,并自己尝试,果然可以,下面就把uuencode配合mail发送附件的过程记下来。

首先centos默认情况下是没有按照uuencode包的

yum install sharutils

这样就可以把uuencode包装上

下面就可以使用uuencode和mail命令配合使用了,来看下面的例子

在/root目录下都有install.log文件,我们就以这个为例子

uuencode install.log install.log |mail –s “test attach” wenzi@wenzizone.cn

然后通过客户端把邮件收下来就可以看到邮件中的附件了

如果需要在同一封邮件中包含两个或多个也是可以的,如下

(uuencode a.log a.log;uuencode b.log b.log) | mail –s “two attach” wenzi@wenzizone.cn

这样通过客户端收下来后就可以看到两个附件了。

参考:http://blog.chinaunix.net/u3/93926/showart_1895548.html

http://space.itpub.net/110321/viewspace-617491

阅读全文

今天蚊子给开发人员配了个postfix测试程序发送邮件,为了验证是否配置成功,需要在命令行方式下发送邮件,网上查了些资料,现在把这些整理下来,方便以后自己查看只用,蚊子配置的postfix是匿名发送的,不需要用户验证。

连接上服务器的25端口,执行以下命令

# telnet 192.168.1.201 25
Trying 192.168.1.201…
Connected to localhost (192.168.1.201).
Escape character is ‘^]’.
220 localhost ESMTP Postfix
250 localhost
mail from:harvey_liu@126.com
250 2.1.0 Ok
rcpt to:harvey_liu@126.com
250 2.1.5 Ok
354 End data with <CR><LF>.<CR><LF>
test just a test
.
250 2.0.0 Ok: queued as E832C43008F
quit
221 2.0.0 Bye
Connection closed by foreign host.

# telnet 192.168.1.201 25

Trying 192.168.1.201…
Connected to localhost (192.168.1.201).
Escape character is ‘^]’.
220 localhost ESMTP Postfix

helo a
250 localhost

mail from:harvey_liu@126.com
250 2.1.0 Ok

rcpt to:harvey_liu@126.com
250 2.1.5 Ok

data
354 End data with <CR><LF>.<CR><LF>

test just a test
.

250 2.0.0 Ok: queued as E832C43008F
quit

221 2.0.0 Bye
Connection closed by foreign host.

SMTP 命令包括:
我们通过telnet 到邮件服务器25端口后,就可以使用以下的命令来发送邮件了.
HELO 向服务器标识用户身份。发送者能进行欺骗,但一般情况下服务器都能检测到。
EHLO 向服务器标识用户身份。发送者能进行欺骗,但一般情况下服务器都能检测到。
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器响应 250 OK
RSET 重置会话,当前传输被取消,服务器响应 250 OK
QUIT 结束会话
阅读全文