Linux Postfix

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34556414/article/details/83304357

sendmail:性能好,设置复杂,适合老手

qmail:体积小260+k ,模块化。需要做二次开发,适合对邮件性能有要求的

postfix:前身是sendmail,postfix原本是sendmail里面的一个模块,红帽6默认安装好postfix

zmailer:近几年才出来的邮件

coremail:国内做的最好的商业平台,运行在linux上

 

 

邮件服务三要素:

MTA:邮件传输代理,postfix,sendmail,qmail。这些其实就是邮件服务器。

MUA:用户代理,用来发邮件,写邮件,window下面的工具OE,linux下面的工具thunderbird。

MDA:usera将邮件发给userb,首先是将邮件发给了邮件服务器,通过MDA放到某个用户的邮箱,如果userb需要这个邮件就会去邮箱里面将邮件读取出来。

 

发邮件使用了smtp协议,收邮件使用了imap协议。

(1)postfix的配置文件结构

postfix的配置文件位于/etc/postfix下,安装完postfix以后,我们可以通过ls命令查看postfix的配置文件:

[root@mail postfix]# ls

install.cf main.cf master.cf postfix-script

 

这四个文件就是postfix最基本的配置文件,它们的区别在于:

 

mail.cf:是postfix主要的配置文件。

Install.cf:包含安装过程中安装程序产生的postfix初始化设置。

master.cf:是postfix的master进程的配置文件,该文件中的每一行都是用来配置postfix的组件进程的运行方式。

postfix-script:包装了一些postfix命令,以便我们在linux环境中安全地执行这些postfix命令。

 

(2)postfix的基本配置

postfix大约有100个配置参数,这些参数都可以通过main.cf 指定。配置的格式是这样的,用等号连接参数和参数的值。如:

myhostname = mail.mydomain.com

  等号的左边是参数的名称,等号的右边是参数的值; 当然,我们也可以在参数的前面加上$来引用该参数,如:

 

myorigin = $myhostname

 

虽然postfix有100个左右的参数,但是postfix为大多数的参数都设置了缺省值,所以在让postfix正常为你服务之前,你 只需要配置为数不多的几个参数。下面我们一起来看一看这些基本的postfix参数。需要注意的是,一旦你更改了main.cf文件的内容,则必须运行

postfix reload命令使其生效。

 

 

下面要讲的是postix仅仅是发送邮件的,不会接收,是一个中转的邮件服务器,会将邮件集中的转发到另外一台postix邮件服务器上面,对于用户来说是一个中转的作用。

 

[root@server0 ~]# vi /etc/postfix/main.cf  --postfix的配置文件

 

relayhost=smtp0.example.com --Server0不接受邮件,将所有的邮件都进行中转到smtp0.example.com这台服务器上面,下面可以看到server0将所有的邮件都中转到desktop0上面了,并不会放到自己的邮箱。

 

[root@server0 ~]# nslookup  smtp0.example.com

Server: 172.25.254.254

Address: 172.25.254.254#53

 

smtp0.example.com canonical name = desktop0.example.com.

Name: desktop0.example.com

Address: 172.25.0.10

 

 

inet_interfaces = localhost --监听端口是本机,不对外提供服务,只接受本机发来的邮件,不接受其他服务器发来的邮件

 

inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:

 

inet_interfaces = all

inet_interface = 192.168.1.1

 

mynetworks=127.0.0.0/8 [::1]/128 --做中转的时候只会中转本机的邮件

 

 

myorigin=desktop0.example.com发出去的邮件后缀名,比如发邮件已[email protected]格式发出去

 

myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为 [email protected] ,则该参数指定@后面的域名。缺省地, postfix使用本地主机名作为myorigin,但是建议你最好使用你的域名,因为这样更具有可读性。比如:安装postfix的主机为 mail.domain.com则我们可以这样指定myorigin:

myorigin = domain.com

  当然我们也可以引用其他参数,如:

myorigin = $mydomain

 

mydestination = '' --服务器可以接受什么邮件,这里是中转邮件,不接受任何邮件,所以后面等于空

 

mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件。比如:你的用户的邮件地址为 [email protected] , 也就是你的域为domain.com, 则你就需要接收所有收件人为 [email protected] 的邮件。与myorigin一样,缺省地,postfix使用本地主机名作为 mydestination。如:

 

mydestination = $mydomain

mydestination = domain.com

 

 

local_transport=error:local delivery disabled  --error后面随便写什么都可以,不会将邮件发送到邮箱(每个用户都有一个邮箱),MDA的操作

 

[root@server0 ~]# systemctl restart postfix

 

由于只能在本机进行中转,所以只能在本机进行测试。

[student@server0 ~]$ mail -s "server0 null client" [email protected]null client test

 

 

.

EOT

 --这是发给desktop0的邮件

 

猜你喜欢

转载自blog.csdn.net/qq_34556414/article/details/83304357