opkg软件:安装Sendmail

来源:百度文库 编辑:中财网 时间:2024/05/01 16:28:41

mx mail.mihost.kmip.net  (邮件服务器是mx记录)

 

发信服务器 (smtp)

收信服务器 (pop/imap)

 

User   smtp>      MailServer <======> MailServer pop3/imap>  User

    <pop3/imap                 

 

MTA(Mail Transfer Agent),邮件传输代理,如sendmail,qmail

MUA(Mail User Agent),邮件用户代理, 如outlook,foxmail

 

SendMail服务器的安装

下载sendmail-8.12.8-4.i386.rpm

准备编译环境

#rpm -e --nodeps sendmail

#rpm -e --nodeps postfix

安装认证库:

cyrus-sasl、cryus-sasl-plain、cyrus-sasl-devel (cyrus-sasl-gssapi、cyrus-sasl-md5可要可不要)

#rpm -qa |grep sasl

    cyrus-sasl-2.1.10-4  #为那imaps加密

    cyrus-sasl-plain-2.1.10-4 smtp的身份验证

    cyrus-sasl-devel-2.1.10-4

    cyrus-sasl-md5-2.1.10-4

 

 

原代码安装配置sendmail

*******************************************

先确认网络环境:

ifconfig eth0

./host -t MX mihost.kmip.net

    mihost.kmip.net mail is handled by 0 mail.mihost.kmip.net.

./host -t MX benet.com

 

编译安装过程

解压缩原代码

tar zxvf sendmail.8.13.8.tar.gz

手动生成m4文件,内容如下:

cd sendmail-8.13.8/

vi devtools/Site/site.config.m4

    APPENDDEF(`confENVDEF‘,`-DSASL=2‘)

    APPENDDEF(`conf_sendmail_LIBS‘,`-lsasl2‘)

编译

sh Build c  #可能编译时会出错!!

sh Build install

确保m4安装了

rpm -q m4

    m4-1.4.1-13

建立sendmail目录

mkdir /usr/share/sendmail

cp -a cf /usr/share/sendmail

生成sendmail.mc文件

cd cf/cf

cp generic-linux.mc sendmail.mc

more sendmail.mc

建立sendmail工作目录

mkdir /etc/mail

安装

make install-cf

cp sendmail.mc /etc/mail/

生成配置文件

cd /etc/mail

touch aliases access

echo "mihost.kmip.net" >local-host-names

echo "mail.mihost.kmip.net">>local-host-names

cat local-host-names

生成access.db、aliases.db

makemap hash access < access

makemap hash aliases < aliases

启动sendmail

mkdir /var/spool/mqueue

/usr/sbin/sendmail -bd -q1h  #后台执行,且每小时处理一次邮件队列

ps -aux | grep sendmail

 

测试发信

确认25端口开启了

netstat -tnl | grep :25

    tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN

增加帐号redhat作为root的别名

useradd redhat

passwd redhat

echo "root:redhat" >>/etc/mail/aliases

newaliases #让aliases生效

连接服务器测试发信

[root@RHL9 root]# telnet localhost 25

Trying 127.0.0.1...

Connected to localhost.

Escape character is ‘^]‘.

220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Thu, 8 Mar 2007 02:35:46 +0800

mail from: root@mihost.kmip.net

250 2.1.0 root@mihost.kmip.net... Sender ok

rcpt to: redhat@mihost.kmip.net 

250 2.1.5 redhat@mihost.kmip.net... Recipient ok

data

354 Enter mail, end with "." on a line by itself

hello,mail from smtp command.

.

250 2.0.0 l27IZkc9006279 Message accepted for delivery

quit

221 2.0.0 localhost.localdomain closing connection

Connection closed by foreign host.

[root@RHL9 root]# tail /var/log/maillog

Mar  8 02:37:57 RHL9 sendmail[6279]: l27IZkc9006279: from=root@mihost.kmip.net, size=30, class=0, nrcpts=1, msgid=<200703071836.l27IZkc9006279@localhost.localdomain>, proto=SMTP, daemon=MTA, relay=RHL9 [127.0.0.1]

Mar  8 02:37:57 RHL9 sendmail[6660]: l27IZkc9006279: to=redhat@mihost.kmip.net, ctladdr=root@mihost.kmip.net (0/0), delay=00:00:58, xdelay=00:00:00, mailer=local, pri=30443, dsn=2.0.0, stat=Sent

[root@RHL9 root]# cat /var/mail/redhat

From root@mihost.kmip.net  Thu Mar  8 02:37:57 2007

Return-Path:

Received: from RHL9 (RHL9 [127.0.0.1])

        by localhost.localdomain (8.13.8/8.13.8) with SMTP id l27IZkc9006279

        for redhat@mihost.kmip.net; Thu, 8 Mar 2007 02:36:59 +0800

Date: Thu, 8 Mar 2007 02:35:46 +0800

From: root

Message-Id: <200703071836.l27IZkc9006279@localhost.localdomain>

X-Authentication-Warning: localhost.localdomain: RHL9 [127.0.0.1] didn‘t use HELO protocol

 

hello,mail from smtp command.

用outlook测试发信

然后切换到redhat用mail来收信

[root@RHL9 root]# su - redhat

[redhat@RHL9 redhat]$ mail

Mail version 8.1 6/6/93.  Type ? for help.

"/var/spool/mail/redhat": 2 messages 2 new

>N  1 root@mihost.kmip.net         Thu Mar  8 02:37  12/487 

 N  2 redhat@mihost.kmip.net       Thu Mar  8 02:54  42/1545  "Hello,Test from outlo"

& 2

 

配置收信服务器

安装

rpm -ivh /mnt/cdrom/RedHat/RPMS/imap*   (在2#光盘上)

开始服务

chkconfig ipop3 on

chkconfig imap on

ls /etc/xinetd.d

    chargen      daytime-udp  imap   ntalk   rsh       sgi_fam  time-udp

    chargen-udp  echo         imaps  pop3s   rsync     talk

    cups-lpd     echo-udp     ipop2  rexec   servers   telnet

    daytime      finger       ipop3  rlogin  services  time

service xinetd restart

停止 xinetd:[  确定  ]

启动 xinetd:[  确定  ]

grep imap /etc/services

imap            143/tcp         imap2           # Interim Mail Access Proto v2

imap            143/udp         imap2

grep pop3 /etc/services

pop3            110/tcp         pop-3           # POP version 3

pop3            110/udp         pop-3

netstat -tnl |grep :143

tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN

netstat -tnl |grep :110

tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN

 

再用outlook测试收发信(pop3、imap)

 

邮件转发的配置:

#cd /etc/mail

#vi sendmail.mc

  添加如下内容:红色内容

divert(0)dnl

include(`/usr/share/sendmail/cf/m4/cf.m4‘)dnl

VERSIONID(`$Id: generic-linux.mc,v 8.1 1999/09/24 22:48:05 gshapiro Exp $‘)

FEATURE(`access_db‘)dnl

OSTYPE(linux)dnl

DOMAIN(generic)dnl

MAILER(local)dnl

MAILER(smtp)dnl

 

注意:` ‘ 区别!

 

#echo “192.168.1 RELAY” >>access

#makemap hash access < access

#killall  sendmail

# /usr/sbin/sendmail -bd -q1h 一小时清理邮件队列!

 

以上案例在局域网测试成功(外部邮件都能发)。以上用的域名是动态域名。在路由器设置ip转发功能。