sky 发表于 2013-4-22 08:52:28

Linux邮件传输协议postfix

邮件传输代理postfix1、MTA:邮件传输代理,SMTP服务器               sendmail,UUCP
               单体结构,SUID,配置文件语法(m4编写)
               qmail
               postfix:模块化设计,安全,跟sendmail兼容,效率高
               exim:MTA
               Exchange (Windows,异步消息协作平台)
2、MDA:邮件投递代理                procmail
                Maildrop
3、MRA:邮件检索协议(POP3、IMAP4)               cyrus-imap
               dovecot依赖mysql客户端
4、MUA:邮件用户代理               outlook express, outlook
               foxmail
               THunderbird
               Evolution
               mutt(文本界面)
5、postfix的配置文件         a) postfix模块化:
                   master: /etc/postfix/master.cf
                   mail: /etc/postfix/main.cf

         b) postconf: 配置postfix
                  -d: 显示默认的配置
                  -n: 修改了的配置
                  -m: 显示支持的查找表类型
                  -A: 显示支持的SASL客户端插件类型
                  -e PARMATER=VALUE: 更改某参数配置信息,并保存至main.cf文件中
6、smtp状态码:               1xx: 纯信息
               2xx: 正确
               3xx: 上一步操作尚未完成,需要继续补充
               4xx: 暂时性错误
               5xx: 永久性错误
7、smtp协议命令:            helo (smtp协议)
            ehlo (esmtp协议)
            mail from:邮件来源
            rcpt to:邮件送给
8、alias: 邮件别名             abc@magedu.com: postmaster@magedu.com9、邮件服务器:mail server:             SMTP:简单邮件传输协议             ESMTP:扩展SMTP协议             POP3:邮局协议             IMAP4:互联网邮件访问协议             UUCP:Unix主机复制文件的协议10、安装配置postfix             groupadd -g 2525 postfix             useradd -g postfix -u 2525 -s /sbin/nologin -M postfix             groupadd -g 2526 postdrop             useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop             tar zxvf postfix-2.9.3.tar.gz             cd postfix-2.9.3             make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto'             make             make instal1、生成别名二进制文件         newaliases2、进行一些基本配置,测试启动postfix         myhostname = mail.magedu.com         myorigin = magedu.com         mydomain = magedu.com         mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain         mynetworks = 192.168.1.0/24, 127.0.0.0/83、为postfix提供SysV服务脚本/etc/init.d/postfix#!/bin/bash## postfix Postfix Mail Transfer Agent## chkconfig: 2345 80 30# description: Postfix is a Mail Transport Agent, which is the program \# that moves mail from one machine to another.# processname: master# pidfile: /var/spool/postfix/pid/master.pid# config: /etc/postfix/main.cf# config: /etc/postfix/master.cf# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ $NETWORKING = "no" ] && exit 3[ -x /usr/sbin/postfix ] || exit 4[ -d /etc/postfix ] || exit 5[ -d /var/spool/postfix ] || exit 6RETVAL=0prog="postfix"start() {# Start daemons.echo -n $"Starting postfix: "/usr/bin/newaliases >/dev/null 2>&1/usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"RETVAL=$?[ $RETVAL -eq 0 ] && touch /var/lock/subsys/postfixechoreturn $RETVAL}stop() {# Stop daemons.echo -n $"Shutting down postfix: "/usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"RETVAL=$?[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/postfixechoreturn $RETVAL}reload() {echo -n $"Reloading postfix: "/usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"RETVAL=$?echoreturn $RETVAL}abort() {/usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"return $?}flush() {/usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"return $?}check() {/usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"return $?}restart() {stopstart}# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopstart;;reload)reload;;abort)abort;;flush)flush;;check)check;;status)status master;;condrestart)[ -f /var/lock/subsys/postfix ] && restart || :;;*)echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"exit 1esacexit $?# END4、为此脚本赋予执行权限chmod +x /etc/init.d/postfix5、将postfix服务添加至服务列表chkconfig --add postfix6、设置其开机自动启动chkconfig postfix on7、重新启动服务service postfix restart8、为postfix服务开启用户别名支持启用alias_maps = hash:/etc/aliases在/etc/aliases文件中定义新的别名项redhat: magedu
                  gentoo@126.com: admin@magedu.com          将/etc/aliases转换为hash格式让postfix重新载入配置文件                   /usr/sbin/postfix reload9、实现postfix基于客户端的访问控制          例如:                  禁止172.16.100.66这台主机通过工作在172.16.100.1上的postfix服务发送邮件。访问表使用hash的格式。1、编辑/etc/postfix/access文件,以之做为客户端检查的控制文件定义:172.16.100.66 REJECT2、将此文件转换为hash格式                  postmap /etc/postfix/access3、配置postfix使用此文件对客户端进行检查编辑/etc/postfix/main.cf文件smtpd_client_restrictions = check_client_access hash:/etc/postfix/access4、让postfix重新载入配置文件即可进行发信控制的效果测试了。               /usr/sbin/postfix reload


leonheart 发表于 2013-4-22 09:33:37

我是个凑数的。。。

cnq 发表于 2013-5-18 01:13:13

内练一口气,外练一口屁。

qqruser 发表于 2013-5-20 16:53:06

长大了娶唐僧做老公,能玩就玩一玩,不能玩就把他吃掉。

liyao20060101 发表于 2013-5-23 16:19:30

爱——不是想出来的,爱——是做出来的!!

prollerweg 发表于 2013-6-3 16:21:47

有事秘书干,没事干秘书!
页: [1]
查看完整版本: Linux邮件传输协议postfix