首页/技术开发/内容

这个问题不该在这里问哦!看看吧,一段SENDMAIL的设置。不过想要学得更好,还是要再找其它的资料的。

技术开发2024-01-08 阅读()
grep -v grep 找出旧daemon的process(或head -1/etc/sendmail.pid 或 head -1
/etc/mail/sendmail.pid),然后用 kill -9 processID干掉它(或直接用 kill -9 `head -1
/etc/sendmail.pid`)。

  4.启动新daemon。例如下指令:
  /usr/lib/sendmail -bd -q30m
  当然,保守一点,看旧的daemon怎麽跑,照旧的来下参数应该是没有问题。
  这时,初步安装就已经完成了,接下来请看设置sendmail

3.3安装Sendmail注意事项

  如果安装不成功,请参考下面的问题:
  用vi或任一种编辑器,编辑的makefile档,作一点点 必要的修改。所要修改的地方不多,下
面是可能要修改的地方:

  1."CC ="如果原档所用的compiler并不是我们系统的,这才要改。

  2.本系统是否有安装Berkerlay 的New database?如果有,跳过本点,到第3点。 如果没有(
如:一般SunOS 都没有装),那麽请修改这几 行(下面以Makefile.SunOS为例,但其他系统也类
似):

  A.在 DBMDEF= -DNDBM -DNEWDB -DNIS 一行,请改成: DBMDEF= -DNDBM -DNIS (即去
掉-DNEWDB)

  B.把这两行REMARK起来: INCDIRS=-I/usr/sww/include/db --> #
INCDIRS=-I/usr/sww/include/db
LIBDIRS=-L/usr/sww/lib --> # LIBDIRS=-L/usr/sww/lib

  C.修改LIBS= -ldb -ldbm -lresolv 这一行成: LIBS= -ldbm -lresolv (即去掉-db )

  3.把nroff 的"-mandoc "参数改成一般系统可以接受的 "-man"(当然,这得依你的系统而定
,如果你是用groff,那就可以很愉快的直接使用,不必改这个参数:)。如果不改也并不会影
响sendmail的安装,只是不能看到格式化後的sendmail相关文件罢了。

  关于DIRECTORY PERMISSIONS的问题你需要执行2条命令:

  chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
  chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue

  许多系统的spool目录使用/usr/spool来代替/var/spool,设置别名的etc/mail取而代之的
是/etc,如果你要在sendmail.cf设置RunAsUser许选项,/var/spool/mqueue这个目录需
要RunAsUser 用户的权利,ok,这时开始编译Sendmail,执行这条命令

  sendmail -v -bi

  这时,开始初始化alias database. 如果它显示:

  WARNING: writable directory /etc
  WARNING: writable directory /usr/spool/mqueue
  那么这个目录列出了不适当的写特权,应该避免多方面的的安全攻击。

4.1 设置Sendmail.cf
  产生出来的YYY.cf一般得要改个地方才能正常的收信。请寻找"Cw",原来产生的.cf 档,Cw应
是:Cwlocalhost请在localhost 之後加上你那一台机器所有可能用来当收信地址的host name 。
  例如我有一台机器叫:ftp.games.net.cn,而且也叫:gopher.games.net.cn,
而我希望这一台机器这两个名字都能收信,那我要这么作:
  Cwlocalhost ftp.games.net.cn gopher.games.net.cn

  顺便说一下,Cw之後只能写入本机器的名字,千万不能写入其他机器的名字,否则,甚麽地方
都能寄,那被写的就一定不能寄。

  上面其实是简略的说法,如果你对DNS 也熟悉的话,可参考这节来作判断,判断是否须要在Cw
之後写入东东。否则请直接跳过这一小节,闭上眼睛把本机器所用的所有名字都写上就是了:)

  1.在一台机器上,如果有多个名字(hostname),而是用CNAME 建立的,如:
  $ORIGIN games.net.cn
  ftp IN A 140.119.1.2
  gopher IN CNAME ftp

  那麽可以不必在Cw上标明。系统会透过DNS 找到其 Canonical name。

  2.如果一台机器有多个名字,可是,每个名字是用A record 建立的。如:
  $ORIGIN games.net.cn.
  ftp IN A 192.168.25.2
  gopher IN A 192.168.25.2
  这种情况【一定】要记得在Cw後写上你所要收信的名字。如果这个忘了写,会有怎样的问题呢

  忘了将会有从外面机器寄信来,没有写上的机器名将却收不到信,机器会抱怨:
  "Local configuration error" 。

  如:我的sendmail.cf中的Cw这行是如下: Cw games.net.cn
  那我将无法使用这个地址:
  username@games.net.cn
  而只能用
  username@ftp.games.net.cn 否则将出现上述错误。

  如果发现了错误,那再加上去也就可以了。

  3.如果一台机器有多interface ,各interface有其本身的名字,且要收信。
  这个情况也要在Cw之後写明所有要收信的hostname。

  ok!一个标准的sendmail.cf文件就设置完了!

4.2 设置access

  打开/etc/mail/access,你会看到 (注意一些系统的access文件不再/etc/mail下,如找不到
请用whereis查找或检查是否安装正常)

  # Check the /usr/doc/sendmail-8.9.3/README.cf file for a description
  # of the format of this file. (search for access_db in that file)
  # The /usr/doc/sendmail-8.9.3/README.cf is part of the sendmail-doc
  # package.
  #
  # by default we allow relaying from localhost...
  localhost.localdomain RELAY
  localhost RELAY

  如果您的IP地址是192.168.25.11的话,这样请在最后一行加上192.168.25.11   RELAY
  其文件的最后三行应是:

  localhost.localdomain RELAY
  localhost RELAY
  192.168.25.11 RELAY

  加上这句话您就可以用sendmail发送接收mail了!但是如果您想让别人也可以使用sendmail的
话,他的IP是202.168.25.22,这样就在在最后一行加入202.168.25.22   RELAY
  其文件的最后四行应是:

  localhost.localdomain RELAY
  localhost RELAY
  192.168.25.11 RELAY
  192.168.25.22 RELAY

  我想,您现在一定有个疑问是,如果我想设置50个人用sendmail是不是需要加50个IP啊!?
  嘿嘿,不用啦,是这样,sendmail考虑到多用户的时候,它准许你添入整个C类地址,(B类好
像也可以,我没try过!)
  其格式如下:

  localhost.localdomain RELAY
  localhost RELAY
  192.168.25 RELAY

  这样,您就是把192.168.52这整个C都加入的sendmail中,这个C类地址的用户,如果在你的系
统里有账号的话,就可以使用sendmail收发信件了!

4.3 设置pop3

  如果您需要pop3来接收信件,您需要打开pop3端口,

  vi /etc/inetd.conf 查找到
  # pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
  把#号删掉。

  vi /etc/services 查找到
  #pop-3 110/tcp # POP version 3
  把#号删掉。

  这样,在restart inetd后,pop3 110端口就可以接信了!如果还是不行,请检查是否安装pop
3端口!

4.4 如何restart sendmail;inetd以及注意事项

  有一点要提醒大家的,要用"kill -9 [pid-of-sendmail]" ,从新启动sendmail
  如果用 kill -HUP 是不会发生作用的! (这是颇多人常遇到的问题,切记!)
  在redhat6中用/etc/rc.d/init.d/sendmail restart即可!

  inetd是/etc/rc.d/init.d/inetd restart

5.1 sendmail的别名和forward


  (1) 关于直接用IP地址发信

  mail user@[166.111.IP.Address]
  只要用[]将IP地址括起来就行了

  (2) 关于alias

  sendmail在/etc下有两个文件 aliases和aliases.db, 后者是前者用newaliases
生成的别名数据库. 你可以手工编辑/etc/aliases, 然后运行newaliases更新数据库(其
实newaliases是个到sendmail的 symlink)

  eg: nickname : user@hotmail.com
  alias-name: real-user-account

  则以后mail nickname就可以将信寄到user@hotmail.com处
  而别人寄给alias-name@your.domain.name的信就会转给真正的用户   
 real-user-account

  (3) 关于forward

  在你的$HOME目录下面编辑一个.forward文件, 里面写上你要forward的目的e-mail
地址或本机的用户名, 就可以自动将信 forward到相应地址

  eg: .forward: user@hotmail.com
  或 other-user-account
  则给此人的e-mail会forward到hotmail或other-user-account处

  (4) 关于vacation

  去找一个vacation包(如RedHat的contrib中有vacation的rpm), 装上后就一个
  /usr/bin/vacation程序和一个man.
  先运行vacation, 它会让你编辑$HOME/.vacation.msg文件, 就是要发回给对方
告诉他你现在不看信的东西啦. 然后编辑$HOME/.forward文件, 写这样一句 \username,
"(北联网教程,专业提供视频软件下载)

第1页  第2页  第3页  第4页 

……

相关阅读