热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

sendmail基本配置

sendmail基本配置原语sendmail配置命令是区分大小写的。根据习惯,预定义宏的名称全部是大写(例如OSTYPE),m4命令全部是小写(例如define),可配置的变量名用小写的conf打头,以全部大写的变量名结尾(例如confCOPY_ERRORS_TO)。宏通常指向一个叫做../m

sendmail基本配置原语

sendmail配置命令是区分大小写的。根据习惯,预定义宏的名称全部是大写(例如OSTYPE),m4命令全部是小写(例如define),可配置的变量名用小写的conf打头,以全部大写的变量名结尾(例如confCOPY_ERRORS_TO)。宏通常指向一个叫做../macroname/arg1.m4的文件。例如,宏OSTYPE(‘linux')使得../ostype/linux.m4被包括进来。

在本节中我们只涉及基本的配置命令,把高级命令留到后面讨论。


VERSIONID宏

您应该用CVS或者RCS维护配置文件,这不仅是为了能在必要时返回到早先的配置版本,也是为了能够标出构成配置文件的m4文件的版本。请使用VERSIONID宏来自动嵌入版本信息。句法是:

实际的版本信息将在您检入文件时由RCS填入。它将作为注释出现在最终的sendmail.cf文件中。如果您忘记把sendmail发布版本放在了哪个位置,这项信息对您会有帮助。文件的位置常常是由可用的磁盘空间而不是由文件系统的设计思路决定的。


OSTYPE宏

ostype目录下的文件用其包含的默认值所针对的操作系统来命名。一个OSTYPE文件封装了各种特定于厂商的信息,比如与邮件相关的文件的期望位置、sendmail所需命令的位置、邮寄程序的标志等。

根据约定,特定于操作系统的信息由OSTYPE宏插入配置文件 。每个配置文件在靠近开头的地方都必须包括一个OSTYPE宏,一般是紧跟在VERSIONID之后。
OSTYPE文件主要是通过定义其他m4变量来完成工作。例如:

define(‘ALIAS_FILE',  ‘/etc/aliases')

指定系统范围的别名文件的位置。如果愿意的话,您可以稍后在.mc文件中覆盖OS的默认值,但是请不要修改软件发布中自带的OSTYPE文件,除非它真的错了,此时还应该提交一份错误报告给sendmail-bugs@sendmail.org。有些网点想让别名文件跨平台保持一致的位置,于是在他们的DOMAIN文件中重新定义了它的位置。

cf目录中的README文件列出了在OSTYPE文件能够定义的所有变量。表18.8一方面举出了一些重要的变量,另外还有几个您可能想用来配置减少垃圾邮件的变量(但是默认没有定义)。默认值是您的OSTYPE文件没有指定其他值的时候您所得到的值。

表18.8 在OSTYPE文件中设置的一些变量的默认值

变    量

默  认  值

变    量

默  认  值

ALIAS_FILE

/etc/mail/aliases

LOCAL_SHELL_PATH

/bin/sh

HELP_FILE

/etc/mail/helpfile

LOCAL_MAILER_MAX

未定义

STATUS_FILE

/etc/mail/statistics

LOCAL_MAILER_MAXMSGS

未定义

QUEUE_DIR

/var/spool/mqueue

SMTP_MAILER_MAX

未定义

MSP_QUEUE_DIR

/var/spool/clientmqueue

SMTP_MAILER_MAXMSGS

未定义

LOCAL_MAILER_PATH

/bin/mail

 

 

如果在一个新的OS版本或体系结构上安装sendmail,一定要创建一个相应的OSTYPE文件并把它提供给sendmail.org,以便可以在sendmail的下一个版本中把它包括进来。只要以那些已存在的文件为模型建立新文件,然后对照cf/README文件中默认值的表检查它即可。如果新系统中某个变量的值与默认值相同,就不需要再为它包含一项(但是万一默认值有变化,这样做对保护您自己也没坏处)。

表18.9显示了我们举例的平台所用的OSTYPE文件。
表18.9 Linux系统的OSTYPE文件

系    统

文    件

目    录

用    法

Red Hat

linux.m4

/usr/share/sendmail-cf

OSTYPE(‘linux')

Fedora

linux.m4

/usr/share/sendmail-cf

OSTYPE(‘linux')

SUSE

suse-linux.m4

/usr/share/sendmail

OSTYPE(‘suse-linux')

Debian

debian.m4

/usr/share/sendmail/sendmail.cf

OSTYPE(‘debian')

Ubunutu

linux.m4

/usr/share/sendmail

OSTYPE(‘linux')

 
SUSE把sendmail的软件发布放在/usr/shsare/sendmail里。OSTYPE文件suse-linux.m4就在那里的ostype目录下,它不是sendmail.org发布的sendmail软件包的一部分。那个文件很长(超过80行),包含了各种FEATURE,以及其他一些宏,它们通常可以在一个站点的主控配置文件(.mc文件)而不是OSTYPE文件里找到。这种做法把真实的配置向系统管理员藏了起来?或许混起来有好处,但我们建议在实际中不要这样做。
 
Debian把配置文件藏在了/usr/share/sendmail/sendmail.cf/下。sendmail.cf目录(Debian的人选的这个名字太容易让人搞混了)对应于sendmail软件发布中的cf目录,它包含您需要的所有文件,包括一个针对于Debian的OSTYPE文件ostype/debian.m4。这个OSTYPE文件有50行长,大多由路径名和注释所组成,它也应该是那样。许多内容和sendmail.org的当前默认内容是一样,所以不需要再明确地说明一遍。不过,重新说明一遍有助于防止Debian出现因为默认值的变化而造成的不一致性或者错误。只有Debian和sendmail的OSTYPE部分中不一样的内容包括在sendmail软件发布所带的一般DOMAIN文件里。在实际的.mc文件中,DOMAIN语句应该在前面出现,而不是隐藏在OSTYPE文件里。


DOMAIN宏

DOMAIN指令允许在一个地方(cf/domain/filename.m4)指定全站的一般信息,然后在每台主机的单个配置文件中这样引用它:

通常选择一个能描述站点特色的文件名。例如,我们给计算机科学系用的文件名为cs.m4,在.mc文件中表示为:

和OSTYPE一样,DOMAIN其实只是一种包含的好方法。但它使得配置文件的结构更为清晰,并为将来的变化埋下了一个伏笔。它最大的用处是从保存在一个地方的.mc文件集中并构建网点的所有.cf文件。

小网点通常不需要DOMAIN文件,但是大些的网点常常用它们引用中转机器、站点级的伪装或保密选项,以及邮寄程序、虚拟域和垃圾邮件数据库的表。

软件发布所带的一般DOMAIN文件给出了通常放在全站范围DOMAIN文件中的那些类型的项。它的内容(删除了注释和dnl)如下所示:

  

这个文件设置了用户转发文件的路径,限制了信头的长度 ,包括进来用于已经离开单位的用户的重定向功能,以及打开了use_cw_file功能,以处理等价的主机名。如果您的.mc文件包括masquerading(伪装功能),那么root用户就不能被伪装。本章后面的内容将会详细介绍这些结构里的每一种。


MAILER宏

您想要启用的每个投递代理都必须包括一个MAILER宏。在sendmail软件发布的cf/mailers目录下,可以找到一个被支持的邮寄程序的完整列表。当前,可选用的邮寄程序有local、smtp、fax、usenet、procmail、qpage、cyrus、pop、phquery和uucp。一般说来,您至少需要:

MAILER(‘local')
MAILER(‘smtp')

第一行包括local和prog邮寄程序。第二行包括smtp、esmtp、dsmtp、smtp8和relay。从8.7版 的sendmail开始,local中加入了对user+details@site.domain这样的电子邮件地址的支持。user定义了消息应该投递到的邮箱,而details提供了一个额外的参数,像procmail这样的本地邮件程序就能用这个参数来对传入的邮件进行分类。

如果您打算调整任何与邮寄程序相关的宏(比如USENET_MAILER_ARGS或FAX_MAILER_PATH),要确保设置这些参数的配置行都位于调用该邮寄程序本身的行之前,否则只会使用旧的值。因此,通常把MAILER声明放在配置文件的结尾。

邮寄程序pop衔接spop程序,后者是mh邮件处理程序软件包的一部分,它实现了RFC1460中定义的POP协议(Post Office Protocol,邮局协议)。需要访问UNIX主机上的邮件的PC和Mac机器要用到它。邮寄程序cyrus用来配合CMU的IMAP服务程序使用,它有两种类型:cyrus用于把邮件投递到用户的邮箱,cyrusbb用于把邮件投递到一个中央布告栏。邮寄程序cyrus也能理解user+details式的句法,它的MAILER说明必须出现在local邮寄程序的说明之后。

邮寄程序fax把Sam Leffler的HylaFAX软件包集成到了邮件系统中。SUSE包含的这个邮寄程序是/usr/bin/faxmail;Red Hat和Debian默认不带HylaFAX。向user@destination.fax发送邮件会把消息主体当作一个传真文档进行发送。destination一般是一个电话号码。为了能将符号名(而不只是电话号码)作为destination,要使用一个由关键字索引的数据库文件。从www.hylafax.org可以得到HylaFAX。

您必须在/usr/local/bin中安装HylaFAX软件发布中的一个脚本,才能把HylaFAX和sendmail关联到一起。您还可能修改宏FAX_MAILER_PATH的值。要把传入的传真从缓冲区投递到用户的邮箱,仍然需要人工介入。您可以把传真文档转换为PostScript文件(用HylaFAX),并用GNU软件包ghostscript来查看它们。从www.gnu.org可以获得ghostscript。

邮寄程序qpage衔接QuickPage软件,把电子邮件投递到您的呼机。有关QuickPage的更多信息请参见www.qpage.org。

上述的宏VERSIONID、OSTYPE、DOMAIN和MAILER都是建立一个基本的hostname.mc文件所需要的。


推荐阅读
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 本文提供了在 Kali Linux 2020.01 x64 版本上安装 Docker 的详细步骤,包括环境准备、使用清华大学镜像源、配置 APT 仓库以及安装过程中的常见问题处理。 ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 本文探讨了Unix和Linux操作系统的起源和发展历程。从20世纪60年代计算机技术的初期阶段,到Unix的诞生及后续Linux的崛起,文章详细介绍了这些操作系统如何逐步成为现代计算不可或缺的一部分。 ... [详细]
  • 在Ubuntu 14.04 (Desktop AMD64) 上安装与配置ROS Indigo
    本文档详细介绍了如何在Ubuntu 14.04 (Desktop AMD64) 系统上安装和配置ROS Indigo。包括设置软件源、安装ROS核心组件、初始化rosdep以及创建ROS工作空间等步骤。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文介绍了如何在Linux系统中获取库源码,并在从源代码编译软件时收集所需的依赖项列表。 ... [详细]
  • 本文详细介绍了如何使用Layui框架实现动态和静态数据表的分页功能,具有较高的实用性和参考价值。适合需要开发管理后台的开发人员参考。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 当我们忘记了Debian系统的登录密码而无法进入系统时,可以通过以下方法进行密码重置。在GRUB2引导界面中选择Debian启动项,按下“e”键进入编辑模式。接着找到以“linux”或“linux16”开头的行,在该行末尾添加“init=/bin/bash”参数。保存并继续启动,系统将进入单用户模式,此时可以使用`passwd`命令来重置root用户的密码。完成后重启系统即可正常登录。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
author-avatar
五环4_183
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有