Samuel Learning

  • 联系
  •  
  • 管理

文章分类(203)

  • 01 ASP/HTML(6)
  • 02 Script/CSS(16)
  • 03 C/C++
  • 04 XML(4)
  • 05 微软编程(26)
  • 06 J2EE(60)
  • 09 Linux(14)
  • 10 Database(27)
  • 11 报表打印
  • 12 打包安装(1)
  • 13 模式重构(2)
  • 14 系统架构
  • 15 敏捷开发(11)
  • 16 案例分析(30)
  • 17 Workflow(1)
  • 18 配置管理(1)
  • 19 项目管理
  • 20 英语(4)

新闻分类(52)

  • CXF学习
  • Hibernate学习(1)
  • iBatis学习(16)
  • Struts1学习(1)
  • Struts2学习(34)

.NET资源

  • adxmenu
  • C# Open Source
  • DNN Directory
  • M2Land
  • Windows Form FAQ
  • 中国DNN
  • 中国DNN联盟

Ajax

  • DoJo
  • GWT
  • JQuery
  • jquery autocomplete
  • jquery flexgrid
  • JQuery Form
  • jquery masked input
  • JQuery UI
  • jquery validation
  • Jquery 图表
  • jquery报表
  • jquery插件集合
  • Qooxdoo
  • Tibco GI
  • YUI
  • YUI-EXT
  • ZeroKode

Java开源

  • ABLE
  • Agile Tao
  • Ajax4JSF
  • Alfresco
  • AppFuse
  • Compiere
  • Equinox
  • Findbugs
  • Geronimo
  • Grails
  • Harmony
  • Hibernate论坛
  • JAG
  • Java开源大全
  • Java视线论坛
  • jBPM工作流
  • JSFTutorials
  • Nereide ERP
  • Ofbiz ERP
  • Opentaps ERP
  • operamasks
  • Petstore
  • Prototype.js
  • RIFE
  • Runa
  • SpringSide
  • Struts Menu
  • Sun Glassfish
  • Trails
  • YUI4JSF
  • 满江红

Mobile

  • Sencha

WEB资源

  • DHTML中心
  • DHTML参考手册
  • DHTML文档
  • EclipsePlugin
  • Firebug
  • GRO Clinux
  • jMaki
  • JSTL文档
  • LoadIcon
  • Openlaszlo
  • Struts Menu 展示
  • Web Test Tools
  • WebCtrs
  • Webdeveloper
  • 中国RIA开发者论坛

Workflow

  • E-Workflow
  • JBPM
  • OpenWFE
  • OSWorkflow
  • WFMC
  • Workflow Research

其他连接

  • confach
  • CPP
  • ejay
  • Giovanni
  • 丹佛
  • 交大e-learning
  • 交大研究生院
  • 可恶的猫
  • 天天@blog
  • 我的相册
  • 阿飞

大牛人

  • 32篇JBPM
  • David.Turing
  • HongSoft@业务集成
  • Joel
  • Koen Aers
  • Martinfowler
  • Raible Matt
  • Raible Wiki
  • Scott W.Ambler
  • Tom Baeyens
  • Uncle Bob
  • 一个世界在等待
  • 子在川上曰
  • 小布老师
  • 小明
  • 差沙
  • 徐昊
  • 江南白衣
  • 汪博士
  • 汪小金
  • 银狐999

开源软件

  • 2Bizbox ERP
  • CompiereCRM&ERP
  • EGW
  • Vtiger CRM
  • webERP

敏捷

  • Canoo
  • Cruisecontrol
  • DBUnit
  • EL4Ant
  • Extreme Programming
  • Fit
  • Fitnesse
  • JFrog
  • Liquibase
  • Maven
  • MockObjects
  • Selenium
  • Squish
  • xpairtise
  • XPlanner
  • XProgramming
  • 敏捷联盟

数据库

  • Oracle 中国
  • Oracle-ERP
  • Oracle在线社区

未归类

  • Aquarius Orm Studio
  • mambo建站系统
  • Oracle产品下载
  • 远程同步管理工具Capivara

经典框架

  • Apache Shale
  • formdef-struts
  • FreeMarker 主页
  • JBoss Seam
  • JSF 中心
  • JSF 入门应用
  • JSF中国
  • MyFaces官方
  • Spring 社区
  • Spring专业网站
  • Spring中文论坛
  • Spring参考手册
  • Spring官方网站
  • strecks-struts
  • Struts1
  • Struts2
  • Struts-layout
  • StrutsWiKi
  • Tapestry WIKI
  • Tapestry 官方
  • Tapestry4开发指南
  • Tapestry中文文档
  • Webwork2文档
  • Wicket

网络教程

  • Laliluna
  • RoseIndia
  • Sang Shin
  • Visualbuilder

著名站点

  • Buildix
  • Dev2Dev
  • IBM dev中国
  • InfoQ
  • ITPub
  • Java Eye
  • Java Research
  • JavaRead
  • JavaWorldTW
  • Matrix
  • PHP100
  • PHPX
  • SpringSideWiKi
  • TheServerSide
  • TWPHP
  • 中国工作流论坛

项目管理

  • 管理人网

最新评论

View Post

用实验快速学习sendmail

用实验快速学习sendmail

 

前言:mail配置比较复杂,本文用实验的方法尽量以最通俗的方式,让读者学习sendmail

配置。

 

[实验目的]

1.安装sendmail。

2.在sendmail中使用假名。

3.用m4改变中转行为。

4.安装和配置POP服务器和客户端。

 

[实验要求]

1.两台RH8.0机器互连。

2.机器1已配置好DNS,具体要求:机器1的IP:192.168.0.254,host:server1.example.com

机器2的IP:192.168.0.2,host:station2.example.com

 

[实验步骤]

1.安装sendmail。

  1) 在机器1和机器2上检查下列包是否安装

     sendmail

     sendmail-cf

     sendmail-doc

     m4

     procmail

     缺什么,装什么。

  2) 编辑机器1和机器2的/etc/mail/sendmail.mc

     去掉下列行的dnl

 

     dnl  DAEMON_OPTIONS('Port=smtp,Addr=127.0.0.1,Name=MTA')

    

     作用是:使得可以接受其他域的mail。

  3) 机器1和机器2上,产生新的配置文件,最好先备份/etc/mail/sendmail.cf

     cp  /etc/mial/sendmail.cf   /etc/mail/sendmail.cf.BAK

     m4  /etc/mail/sendmail.mc  >  /etc/mail/sendmail.cf

  4) 机器1和机器2上,重新启动sendmail.

     # service sendmail restart

     # chkconfig   sendmail  on

 

2.检测sendmail是否正常,及模拟sendmail操作。

  1) 检测sendmail是否可识别你的域名。

     # sendmial -d0 < /dev/null

Version 8.12.5

 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX

                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6

                NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS

                USERDB USE_LDAP_INIT

 

============ SYSTEM IDENTITY (after readcf) ============

      (short domain name) $w = station2

  (canonical domain name) $j = station2.example.com

         (subdomain name) $m = example.com

              (node name) $k = station2

========================================================

 

Recipient names must be specified

如果显示localhost的话,检查/etc/hosts  去掉除127.0.0.1以外的行。如果还有问题,

查看是否在/etc/sysconfig/network中设置了HOSTNAME

   2) 模拟sendmail的操作。

     # echo “hello server1” | mail -v -s hello root@server1

root@server1... Connecting to localhost.localdomain. via relay...

220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003 05:18:42 +0800

>>> EHLO station2.example.com

250-station2.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-ETRN

250-DELIVERBY

250 HELP

>>> MAIL From:<root@station2.example.com> SIZE=47

250 2.1.0 <root@station2.example.com>... Sender ok

>>> RCPT To:<root@server1.example.com>

>>> DATA

250 2.1.5 <root@server1.example.com>... Recipient ok

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

>>> .

250 2.0.0 h6GLIgpx001304 Message accepted for delivery

root@server1... Sent (h6GLIgpx001304 Message accepted for delivery)

Closing connection to localhost.localdomain.

>>> QUIT

221 2.0.0 station2.example.com closing connection

  sendmail的工作过程就如上所示。

  你可以看日志,检查mail的工作过程,更有意义的观察方法:

  在超级用户,另一终端:

  # tail -f  /var/log/maillog 

  会动态显示。

 

3.sendmail中使用假名:

  1) 增加新用户。

     # useradd  student2

     # passwd student2

  2) 编辑/etc/aliases,增加下列三行。

 

     me: student2

     wizards:root,me

     methere: student2@station2.example.com

 

  3) 更新假名数据库。

     # newaliases

  4) 测试:

     #  echo “hello there” | mail -s “hello” me     

     #  echo “hello there” | mail -s “hello” wizards

     #  echo “hello there” | mail -s “hello” methere

  5) student用户收到几封邮件?root受到几封邮件?

 

4.控制中转行为。

  1) 在机器2上编辑/etc/mail/sendmail.mc 文件,增加下列一行:

 

   FEATURE(promiscuous_relay)dnl

 

    注意:如果你这台机连到internet上的话,不推荐你这么作,因为,internet上的用

户会用你的这台机作为跳板,伪装发邮件,使得邮件接收者无迹可寻。

  2) 在机器2上用m4产生新的配置文件,这里最好再备份原/etc/mail/sendmail.cf

    # cp /etc/mail/sendmail.cf  /etc/mail/sendmail.cf.BAK2

    # m4  /etc/mail/sendmail.mc  >  /etc/mail/sendmail.cf

  3) 现在你在机器1上模拟,一个用心不良的用户,用你的机器2作为跳板,发送邮件。

这里假设你有一个邮件叫 linuxsir@sina.com.cn,具体可以变更。

  # telnet station2.example.com  25

Trying 192.168.0.2...

Connected to station2.example.com.

Escape character is '^]'.

220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003 05:45:05 +0800

helo mail.cracker.org

250 station2.example.com Hello IDENT:root@station2.example.com. [192.168.0.2], pleased to meet you

mail from: spammer@cracker.org

250 2.1.0 spammer@cracker.org... Sender ok

rcpt to: linuxsir@sina.com.cn

250 2.1.5 linuxsir@sina.com.cn... Recipient ok

data

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

Subject: Relayed

This is faked and relayed!

ok?

.

250 2.0.0 h6GLj5MV001565 Message accepted for delivery

quit

221 2.0.0 station2.example.com closing connection

Connection closed by foreign host.

  4) 观察机器2的/var/log/maillog

  5) 收你的linuxsir@sina.com.cn的邮件,看看里面的格式。

  6) 机器2,关掉中转。

     # cp  /etc/mail/sendmail.cf   /etc/mail/sendmail.cf.BAK2

     # cp  /etc/mail/sendmail.cf.BAK1   /etc/mail/sendmail.cf

     # service sendmail restart

     重作上面3)步,结果会怎么样呢?

  7) 机器2 有选择的中转:

     编辑/etc/mail/access,增加

 

example.com                       RELAY

 

     重作上面3) 步,结果如何?

 

5.安装和配置POP服务器和客户端。

  1) 机器2上,检查下列包是否装过

     xinted

     krb5-libs*

     imap

     缺什么,装什么

   2) 机器2上,启动服务:

     service xinetd start

     chkconfig ipop3 on

   3) 机器2上,确认服务。

      # echo "mail to be popped" | mail -s "hello student2" student2

Trying 127.0.0.1...

Connected to localhost.

Escape character is '^]'.

+OK POP3 localhost.localdomain v2001.78rh server ready

user student2

+OK User name accepted, password please

pass student2

+OK Mailbox open, 1 messages

stat

+OK 1 641

TOP 1 700

+OK Top of message follows

Return-Path: <root@station2.example.com>

Received: from station2.example.com (localhost.localdomain [127.0.0.1])

        by station2.example.com (8.12.5/8.12.5) with ESMTP id h6GMB9MV001575

        for <student2@station2.example.com>; Thu, 17 Jul 2003 06:11:09 +0800

Received: (from root@localhost)

        by station2.example.com (8.12.5/8.12.5/Submit) id h6GMB9T0001573

        for student2; Thu, 17 Jul 2003 06:11:09 +0800

Date: Thu, 17 Jul 2003 06:11:09 +0800

From: root <root@station2.example.com>

Message-Id: <200307162211.h6GMB9T0001573@station2.example.com>

To: student2@station2.example.com

Subject: hello student2

Status:

 

mail to be popped

.

dele 1

+OK Message deleted

quit

+OK Sayonara

Connection closed by foreign host.

  以上就是pop3的对话过程。如果一切正常的话,你的pop3服务器已经建立。

 

  4) 机器1上安装fetchmail 包。

  5) 机器1上,root创建下列文件:

     vi  /root/.fetchmailrc

  

poll station2.example.com with protocol pop3:

        user student2

        password "student2"

 

  6) 机器2上,运行:

     # echo "mail to be popped" | mail -s "hello student2" student2

  7) 机器1上作为POP3客户端,root收邮件:

     # fetchmail -v

     能收到邮件吗?

  8) 你有油箱吗?仿照上面5) 的格式,写一个pop3客户收邮件的fetchmailrc,试试能

     收邮件吗?假设你有个邮箱:linuxsir@sina.com,密码:linuxsir 

     提示:poll mail.sina.com.cn with protocol pop3:

           user linuxsir

           password "linuxsir"

 

[实验总结]

    配置sendmail非常复杂,如果你在都完本文后,仍觉的一头雾水的话,建议参考一些

mail工作原理的资料。另外,/usr/share/doc/sendmail/也有不少资料可供参考。

 

posted on 2005-09-26 08:59 MingIsMe 阅读(539) 评论(0)  编辑  收藏 所属分类: 09 Linux

 
Powered by:
BlogJava
Copyright © MingIsMe