热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在AIX系统下配置使用Sendmail

一、基本知识:Sendmail是在Unix环境下使用最广泛的邮件传输代理程式,Sendmail邮件服务器的特点是功能强大但配置复杂,sendmail的版本升级很频繁,能够通过telnet到主机的25号端口来判断该主机使用的sendmail版本号。例如:telnetxxx.xxx.xxx.xxx25220
 一、基本知识:
   
  Sendmail是在Unix环境下使用最广泛的邮件传输代理程式,Sendmail邮件服务器的特点是功能强大但配置复杂,sendmail的版本升级很频繁,能够通过telnet到主机的25号端口来判断该主机使用的sendmail版本号。例如:

  telnet xxx.xxx.xxx.xxx 25

  220 xxx.xxx.xxx.xxx ESMTP Sendmail 8.12.1/8.12.1; Thu, 22 AUG 2002 10:33:21 0800 (EAT)

  上述信息表明该主机运行的是sendmail8.12.1。版本号一般由被两个圆点分开的三个数字组成。当前运行的绝大多数是sendmail 8.x.x。假如在sendmail服务器上,能够运行sendmail ?d0.4来查看版本情况,例如:Version AIX4.3/8.12.1

  sendmail的启动、停止和刷新,能够使用以下命令:

  startsrc ?s sendmail,也能够带参数:startsrc ?s sendmail -a "-bd -q30m"

  stopsrc ?s sendmail

  refresh ?s sendmail

  查看sendmail的状态:

  lssrc ?s sendmail

  配置开机自动启动sendmail

  编辑/etc/rc.tcpip,找到start /usr/lib/sendmail这一行,假如被注释掉了,取消注释,找到并配置qpi参数,缺省是30分钟,即qpi=30m(s代表秒,m代表分钟,h代表小时,d代表天,w代表星期)。m是缺省。

  手工启动sendmail如:

  sendmail ?q15m

  -q 后面的参数值同qpi。

  Sendmail是个守护进程(daemon),是个信息路由程式,Sendmail通过syslogd daemon来记录邮件系统的活动。要能够做到这一点,/etc/syslog.conf 必须包括以下行:

  mail.debug /var/spool/mqueue/log

  假如/var/spool/mqueue/log不存在, touch /var/spool/mqueue/log

  然后重起syslogd:refresh ?s syslogd

  邮件队列目录是/var/spool/mqueue,邮件队列的内容能够由mailq或sendmail ?bp打印出来。邮件队列包含四类邮件队列文档:数据文档、控制文档、临时文档和抄本文档。文档的格式如下:

  dfAA00312 数据文档

  qfAA00312 控制文档

  tfAA00312 临时文档

  xfAA00312 抄本文档

  显示邮件的统计信息:

  touch /var/tmp/sendmail.st,此文档必须先建立,否则无法用mailstats来查看统计信息.

  使用邮件别名和转发:

  别名的定义放在/etc/aliases文档中,举例添加一个别名manager,在/etc/aliases中增加一行:

  manager:caddy,zhang,joan@xxx.com

  再对这个别名产生一个任何者,假如sendmail对这个别名发送邮件有误,他会发一个出错信息给任何者。

  在/etc/aliases中增加一行:

  owner-manager:mars@xxx.com.cn

  用newaliases或 sendmail ?bi重新编译/etc/aliases,再重起sendmail,mail manager 就能够给caddy,zhang,joan@xxx.com发邮件了。

  转发邮件能够使用/etc/aliases,也能够使用$HOME/.forward。

  使用/etc/aliases的例子:

  tom:zhang, joan@xxx.com

  这样的话,tom收不到任何邮件,邮件发给zhang, joan@xxx.com,假如tom也希望收到,上一行做如下修改:

  tom:\tom,zhang, joan@xxx.com

  自动删除tom的邮件:

  tom:/dev/null

  使用$HOME/.forward的例子:

  编辑该用户(假设是tom)主目录下的.forward文档如下:

  zhang, joan@xxx.com

  假如tom也希望收到,上一行做如下修改:

  \tom,zhang, joan@xxx.com

  自动删除tom的邮件:

  /dev/null

  对$HOME/.forward的修改一存盘就即刻生效,不象/etc/aliases还需重新编译。

  发邮件给本机用户:mail tom

  发邮件给本网络其他主机用户:mail john@mars mars为主机名

  给Internet邮箱用户发邮件:mail joan@xxx.com

  使用BNU或UUCP发邮件:mail @InternetSystem:UUCPSystem!username

  邮件的存储:

  系统邮箱为/var/spool/mail目录下,用户一旦读取就自动保存在$HOME/mbox目录下,假如在产生邮件过程中被中断,就将这些不完整的信息存放在$HOME/dead.letter。

  二、配置sendmail通过SMTP服务器发Internet邮件:

  在TCP/IP网络中,常见的三种主机名解析方法是:DNS、NIS、etc/hosts,假如/etc/resolv.conf存在则先用DNS解析,假如要改变解析顺序,能够修改/etc/netsvc.conf 或变量NSORDER(其优先级高于/etc/netsvc.conf )如在/etc/netsvc.conf 中可定义hosts=local,nis,bind,也可配置NSORDER=local,nis

  1.有DNS的情况

  sendmail 缺省配置和DNS一起工作,无需对/etc/sendmail.cf做任何修改,配置好/etc/resolv.conf并能连通DNS服务器,就能够发Internet邮件了。

  2.使用SMTP代理的情况

  SMTP的全称即为“简单邮件传输协议”,他负责邮件在两台服务器或客户端之间进行交换。习惯上,假如源服务器/客户端将邮件通过SMTP协议传送到其目标服务器上,我们将其称之为“投递”,否则称之为“中继”(RELAY)

  SMTP服务具备以下几个显著的特点:

  1.SMTP服务是匿名服务,并不需要确认发件人和收件人的真实身份;

  2.SMTP服务是明文服务,任何经过SMTP传输的内容均以明文传送。

  使用SMTP代理的情况下,需要对/etc/sendmail.cf做些修改,先要修改DS项,这是配置用来转发邮件的主机。格式如下:

  smtp主机的定义: DS

  DSsmtp xx.com.cn àsmtp的主机名

  或

  DSsmtp:[xxx.xxx.xxx.xxx] àsmtp的IP地址

  本机的定义: Dw, Dm和Cw

  Sendmail 缺省自动定义 Dw (本机的主机名), Dm (域名) 和 Cw (主机别名) 。格式如下:

  Dwxxx //主机名紧挨着Dw写

  Dmcom.cn

  Cwlocalhost

  配置完毕后重起sendmail服务,然后能够用sendmail ?d0.4查看域名的情况和sendmail版本情况,发送邮件能够用mail ?v 显示周详的发送信息。

  如:mail ?v test@xxx.com

  显示信息如下:

  test@xxx.com.cn... Connecting to [xxx.xxx.xxx.xxx] via smtp...

  220 xxx.com ESMTP

  >>> EHLO xxx.com.cn //发件人的名字就是:用户名@ xxx.com.cn

  250-xxx.com.cn

  250-AUTH LOGIN CRAM-MD5 PLAIN

  250-AUTH=LOGIN CRAM-MD5 PLAIN

  250-PIPELINING

  250 8BITMIME

  >>> MAIL From:<用户名@xxx.com.cn>

  250 ok

  >>> RCPT To:

  250 ok

  >>> DATA

  354 go ahead

  >>> . à结束符<回车><换行>.<回车><换行>

  250 ok 1024473751 qp 1714

  test@xxx.com.cn... Sent (ok 1024473751 qp 1714)

  Closing connection to [xxx.xxx.xxx.xxx]

  >>> QUIT

  221 xxx.com.cn

  其中>>>后面显示的内容能够手工输入,能够telnet xxx.xxx.xxx.xxx(SMTP代理主机名)
推荐阅读
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 华为与红帽联手,加速开源电信软件革新
    华为与红帽携手合作,旨在加速开源电信软件的发展,以满足大型电信运营商对灵活网络解决方案的需求。 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文探讨了如何将个人经历,特别是非传统的职业路径,转化为职业生涯中的优势。通过作者的亲身经历,展示了舞蹈生涯对商业思维的影响。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 一、Advice执行顺序二、Advice在同一个Aspect中三、Advice在不同的Aspect中一、Advice执行顺序如果多个Advice和同一个JointPoint连接& ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • Irish budget airline Ryanair announced plans to significantly increase its route network from Frankfurt Airport, marking a direct challenge to Lufthansa, Germany's leading carrier. ... [详细]
  • 本文深入探讨了Go语言中的接口型函数,通过实例分析其灵活性和强大功能,帮助开发者更好地理解和运用这一特性。 ... [详细]
author-avatar
最苦的等待2502915147
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有