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

Linux系统中sendmail详细配置说明

Linux下sendmail的配置详解首先我确定一下我要完成的任务第一部,完成邮件正常接收第二部,优化sendmail邮件服务器。第三部,配置带认证的邮件服务器。第四部,安装openmail。web页面的sendmail(一)安装前的准备:1,Linux版本:我的是(企业版
Linuxsendmail的配置详解
首先我确定一下我要完成的任务
第一部,            完成邮件正常接收
第二部,            优化sendmail邮件服务器。
第三部,            配置带认证的邮件服务器。
第四部,            安装openmail。web页面的sendmail
 
(一)安装前的准备:
1,Linux版本:我的是(企业版,至于红帽9已经不能得到升级和技术支持,所以现在都用企业版。):
[root@tpwb /]# uname -r

2.6.9-34.EL(版本内核)
2,Sendmail版本:8.13.1.2 (系统自带的) 应该是现在的最新版本。
[root@tpwb mail]# rpm -qa|grep sendmail
sendmail-cf-8.13.1-2
sendmail-devel-8.13.1-2
sendmail-doc-8.13.1-2
sendmail-8.13.1-2

3,远程软件
SecureCRT5,去百度搜索一下多的事。
上面也有如何使用这款软件的说明。当然你不用也可以。

4,命令术语的了解:
要用到的命令:rpm ,ls, cd, m4 >, makemap hash, vi,netstat ,reboot,service,
关于linux基础知识你可以去看我的另一篇文章“linux基础知识”
在这里我只讲Sendmail的配置,同样推荐一个网址:上面也有关于Sendmail配置的信息。

5关于邮件服务器的一些相关知识(强烈建议先看一下)

一,电子邮件系统的组成
5部分:MTA,MSA,MUA,MDA,MAA
1,   邮件用户代理(Mail User Agent,MUA)
MUA是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口。
最常用的MUA有:linux中的mail,elm,pine等。Windows的outlook ,foxmail等
2,   邮件代理器(Mail Transfer Agent,MTA)
MTA负责邮件的存储和转发(store and forward)。MTA监视用户代理的请求,根据电子邮件的目标地址找出对应的邮件服务器,将信件在服务器之间传输并且将接受到的邮件进行缓冲。
在linux下的MTA程序有:sendmail,qmail等,
3,   邮件提交代理(Mail Submmission Agent,MSA)
MSA负责消息有MTA发送之前必须完成的所有准备工作和错误检测,MSA就像在MUA和MTA之间插入了一个头脑清醒的检测员对所有的主机名,从MUA得到的信息头等信息进行检测。
4,   邮件投递代理(Mail Ddlivery Agent,MDA)
MDA从MTA接收邮件并进行适当的本地投递,可以投递个一个本地用户,一个邮件列表,一个文件或是一个程序。
Linux下常用的MDA是mail.local,smrsh和procmail(www.procmail.org)
5,   邮件访问代理(Mail Access Agent,MAA)
MAA用于将用户连接到系统邮件库,使用POP或IMAP协议收取邮件。
Linux下常用的MAA有UW-IMAP,Cyrus-IMAP,COURIER-IMAP等

二,电子邮件协议
1,   SMTP
SMTP(Simple Mail Transfer Potocol,简单邮件传输协议),是用来接受和发送电子邮件的TCP/IP协议,通常用于把电子邮件从客户端传输到服务器,或者从某一台服务器传输到另一个服务器。工作方式是连接远程主机的25端口,然后以SMTP命令上传邮件。它是目前Internet上传电子邮件的 协议,一般主机与主机之间交换邮件大部分都是用此协议。
2,   POP3
POP3(Post Office Protocol,邮局协议,目前上第三版本)是关于接受电子邮件的客户机/服务器协议。工作方式是客户端程序连接远程主机的110端口,然后一POP命令下载服务器上的邮件到本地硬盘,然后本机就可在离线的情况下阅读邮件,POP3是initernet上传输电子邮件到本机的第一标准协议。
3,   IMAP
IMAP(Internet Message Access Protocol,网际消息访问协议目前 第四版)类似POP3,但比POP3功能更强大
4,   MIME
MIME(Multipurpose Internet Mail Extension.多用途因特网邮件扩充)是为了帮助协调和统一为发送二进制数据而发明的多种编码方案。
三,电子邮件与DNS
当邮件服务器程序得到一封待发的邮件时,它首先需要根据目标地址确定将信件投递给哪一个服务器。这是通过DNS实现的
在DNS数据库中,有一个很重要的记录,就是邮件交换(Mail Exchange ,MX)记录
MX记录用于告知MTA将邮件传递到何处。MX记录中包含了出现在电子邮件地址中的主机名。
四,邮件中继
就是当邮件向目的地址传输时,一旦源地址和目的地址都不是本地系统,那么本地系统就是邮件的中继(中转站)

只要你仔细阅读了上面的文章,相信你会对邮件服务器有更深刻的了解,同时也能更准确的排除邮件服务器系统一些错误。
 
(二)Sendmail的配置
配置前我先说一下:我采用的是公网IP。所用域名是:tpwb.cn。
我们先确定一下自己的NDS服务器。看看我们开通MX记录没有。
开通MX记录后我们才能用域名来收发邮件
如何开通,我推荐一个网址:
http://www.magicwinmail.com/technic_net_mx.htm
注:如果你是免费域名,采用花生壳等软件的话,一样要开通MX
如何开通,网上有。如果你找不到的话,或者在linux下安装花生壳有问题的话可以给我留言。我会尽快给你答复。这里不做讨论了。

下面看一下我的MX
[root@tpwb mail]# nslookup
> set q=mx
> tpwb.cn
Server:         202.106.196.115
Address:        202.106.196.115#53
Non-authoritative answer:
tpwb.cn mail exchanger = 10 211.101.46.251. (或者是你的域名)
211.101.46.251是我的IP,tpwb.cn是我的域名。
如果你和我的类似,那么咱们开始下一部
我们先查看一下mail目录下的文件,我们一会将会对它们进行更改
[root@tpwb ~]# cd /etc/mail
[root@tpwb mail]# ls
access         helpfile          Makefile      submit.cf      virtusertable
access.db       local-host-names sendmail.cf   submit.cf.bak virtusertable.db
domaintable     mailertable       sendmail.mc   submit.mc
domaintable.db mailertable.db    spamassassin trusted-users
1,   access 数据库文件,用于配置邮件中继。
2,   sendmail.mc,sendmail的主要配置文件。
3、local-host-names域名文件 可以用他来实现虚拟域名或多域名支持。
4、mail别名文件aliases。
5、邮件控制文件
relay、ok、reject和discard。
relay: 可以实现转发。
ok: 是用来允许用户的任意访问,它会覆盖任何其它已建立的检查(实际设置中,最好不要设为这项,除非你对该用户是绝对信任的);
reject: 可以实现对来访地址的拒绝,它根本就不容许该地址与你的邮件服务器进行连接通信;
discard: 的作用是在接收到传输的邮件消息后,把它丢弃掉。在发送者看来,他的邮件的确是接收了,但他并不知道,发送的目的地址根本不可能接收到他的邮件,服务器巧妙地欺骗了他。

我在这里这是简单介绍一下,详细的解释自己去查找资料,我以后也会在写关于服务器相关术语的文章。
我们首先看一下sendmail.mc这个文件的内容
[root@tpwb ~]# cat /etc/mail/sendmail.mc
divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl #     make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl   (将sendmail-cf/m4/cf.m4包含进来)
VERSIONID(`setup for Red Hat Linux')dnl (定义版本信息)
OSTYPE(`linux')dnl (选择包含操作系统指定属性的文件)
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration


推荐阅读
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • 本文探讨了在一个物理隔离的环境中构建数据交换平台所面临的挑战,包括但不限于数据加密、传输监控及确保文件交换的安全性和可靠性。同时,作者结合自身项目经验,分享了项目规划、实施过程中的关键决策及其背后的思考。 ... [详细]
  • 探讨符合特定需求的个人网盘选择,包括分享功能、WebDAV支持及长期稳定性等。 ... [详细]
  • 本文介绍了一种方法,通过使用Python的ctypes库来调用C++代码。具体实例为实现一个简单的加法器,并详细说明了从编写C++代码到编译及最终在Python中调用的全过程。 ... [详细]
  • 本文通过分析一个具体的案例,探讨了64位Linux系统对32位应用程序的兼容性问题。案例涉及OpenVPN客户端在64位系统上的异常行为,通过逐步排查和代码测试,最终定位到了与TUN/TAP设备相关的系统调用兼容性问题。 ... [详细]
  • 高级缩放示例.就像谷歌地图一样.它仅缩放图块,但不缩放整个图像.因此,缩放的瓷砖占据了恒定的记忆,并且不会为大型缩放图像调整大小的图像.对于简化的缩放示例lookhere.在Win ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 汇编语言:编程世界的始祖,连C语言都敬畏三分!
    当C语言还在萌芽阶段时,它首次接触到了汇编语言,并对其简洁性感到震惊。尽管汇编语言的指令极其简单,但它却是所有现代编程语言的基础,其重要性不言而喻。 ... [详细]
author-avatar
法国警方解放军_847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有