七月网

postfix(postfix 的常见功能和配置有哪些)

七月网3520

postfix 的常见功能和配置有哪些

postfix是一种MTA,用来收发邮件

postfix(postfix 的常见功能和配置有哪些)

service:postfix

port:25

proto:smtp

datafile:/var/spool/mail/user

queue:/var/spool/postfix

log:/var/log/maillog

paraments:http://www.postfix.org/postconf.5.html

configuration:/etc/postfix/main.cf(主要配置如下参数)

myhostname:默认为主机名(可自己写)

mydomain:默认为主机的域(...)

myorigin:当发信时,如果不写@domain,默认用该变量值补齐,默认为mydomain

mydestination:该变量决定什么样后缀的邮件到达该MTA的时候会被该MTA接受

inet_interfaces:监听哪个网卡

relayhost:找一个帮忙转发的MTA,可以是[IP],也可以是hostname,如果hostname写在[]中,可以避免查dns

mynetworks:信任的网络,如果信任,可以帮忙转发.如果不设置,默认使用该机器网卡的网段(所有网卡)

local_transport=error:localdeliverydisabled//本地不接受邮huh件

MTA必须配合DNS使用,当发邮件时,

mailuser@domain

机器是无法识别domain的,必须由DNS解析出IP,然后找到IP对应的MTA,通过smTP协议将邮件发到MTA的25号端口,因此DNS必须有一条MX记录,帮助解析MTA的IP

domainMX5name//5为优先级,当有多条MX记录,默认走优先级高的,即数字小的

nameAip

配置之后通过dig查看配置是否成功

备注:修改hostname的时候,修改网卡配置的时候,会改变/etc/resolv.conf文件的内容,影响DNS的正常使用,在/etc/NetworkManager/NetworkManager.conf中添加dns=none就会不受影响。

【relayhost】

relayhost参数指定了下一个MTA,自己可以不做DNS解析,将邮件发给RELAYHOST,RELAYHOST帮忙解析

relayhost=[IP]/hostname

hostname必须可以解析,默认的解析方法时DNS,如果想要用/etc/hosts解析,需要修改一个参数

smtp_host_lookup,该参数的值可以时dns(只有dns);native(只用/etc/nsswitch.conf);dns,native(优先dns)

【transport】

transport:作用和relayhost一样,但是不是无条件帮忙转发,有域的限定

/etc/postfix/main.cftransport_maps=hash:/etc/postfix/transport(文件可以随意,这个时默认的)

domainsmtp:[IP]:25

生成数据库:postmap/etc/postfixe/transport生成数据库transport.db

备注:transport的优先级>mydestination>relayhost

备注:transport的数据库表有好几种格式,postconf-m可以查看支持的数据库表格式,常见的有hash,regexp

如果为regexp格式,transport文件中的转发格式则不同:

/filter/:relayhost//filter中的“.”符号要加转义符号

【queue】

当邮件发不出去的时候,会将邮件留在queue里,/var/spool/postfix下

mailq查看queue中的邮件

postqueue-f尝试重新发送queue中的邮件

postqueue-iq_id把指定的邮件再发送一次

postsuper-dAll删除queue中的所有邮件

postsuper-dALLqueuename删除特定queue内的所有邮件

postconf查看主配置文件的参数

postconf-d查看主配置文件参数的默认值

关于邮件在queue中的发送的几个参数:

queue_run_delay:一个检测queue的程序自服务启动后运行的时间间隔

maximal_backoff_time:在检测程序跑的时候,queue中的邮件超过该时间的会被重新发送

minimal_backoff_time:当超过最小值还没有发送成功,发送的时间会变成*2,一直到最大的间隔

maximal_queue_lifetime:在queue中存在的最长时间,超过被删除(系统认为该邮件发布出去)

【telnet】

一种测试MTA是否能正常通信的方式

telnet******25(某台MTA的25号端口)

ehlo***//表明身份

mailfrom:user@domain//邮件来源

rcptto:user@domain//邮件发往

data//之后输入邮件的内容

subject://主题,下面就可以输入邮件的正文

【alias】

/etc/aliases里可以定义别名,到达MTA本地的邮件会走这个文件,

例如:定义了a1:root,创建新的数据库,newaliases则发给a1的邮件会存在/var/mail/root中

【virtualaliasesdomain】

虽然感觉并没有什么卵用,但是还是能起到一点点一个MTA上面可以接受多个域的邮件,存放地方还不会混乱的一个机制

/etc/postfix/main.cf:

virtual_alias_domains=domain1,domain2

virtual_alias_map=hash:/etc/postfix/virtual(默认为该文件,可以修改)

/etc/postfix/virtual

user@domain1user1(localuser)//发给某个域的某个用户的邮件存在/var/spool/mail/user1中

【virtualmailboxdomain】

/etc/postfix/main.cf

virtual_mailbox_domains=domain

virtual_mailbox_base=/var/mail/vhosts//发过来的邮件会基于这个目录

virtual_mailbox_maps=hash:/etc/postfix/vmailbox

virtual_minimum_uid=100//系统默认值,如果下面两个参数小于该值,就会报错

virtual_uid_maps=static:5000

virtual_gid_maps=static:5000

/etc/postfix/vmailbox

user@domainfile//发给该用户的邮件会存在该文件里

user@domaindir//发给该用户的邮件会存在该目录下的一个文件里,这样,每一封邮件都有一个文件

postmap/etc/postfix.vmailbox

chown5000:5000存放邮件的上层目录

【sasl】

加在MTA外面的一层认证,当用我这个MTA帮忙转发的时候,就像RELAYHOST和transport中被信任以外,还可以时通过验证的,有该MTA的user去做验证

1.installcyrus-sasl,cyrus-sasl-plain

2./etc/postfix/main.cf:

smtpd_sasl_path=smtpd//默认值

3./etc/sasl2/smtpd.conf

pwcheck_method:saslauthd

mech_list:PLAINLOGIN//默认就有

4./etc/sysconfig/saslauthd:

MECH=shadow/pam

5.saslauthdrestart

6.#testsaslauthd-uxxx-pxxx//用用户和密码测试sasl是否成功

7./etc/postfix/main.cf:

smtpd_sasl_auth_enable=yes//sasl在postfix中生效

broken_sasl_auth_clients=yes//兼容微软的outlook

smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

8.#echo-ne'\000username\000password'|opensslbase64//用户和密码生成base64的密文,当另一台MTA将邮件传过来转发时,要进行认证

备注:sasl采用/etc/shadow文件验证用户的时候,selinux会有限制,为了解除selinux的限制,需要打开saslauthd_read_shadow布尔值

test:

telnet:

authplain密文

userusername

passpassword

认证成功就可以帮助转发了

如何在Linux停止和启动postfix服务的命令

1.启动Postfix服务

启动Postfix服务的命令为:/etc/init.d/postfixstart

命令执行后如图所示,则表示启动Postfix服务成功。

2.停止Postfix服务停止Postfix服务的命令为:命令执行后如图所示,则表示停止Postfix服务成功。

3.重新启动Postfix服务重新启动Postfix服务的命令为:/etc/init.d/postfixrestart

命令执行后如图所示,则表示重新启动Postfix服务成功。

4.重新载入Postfix主配置文件重新载入Postfix主配置文件的命令为:

/etc/init.d/postfixreload

命令执行后如图所示,则表示重新载入配置文件成功。

每当修改了Postfix主配置文件/etc/postfix/main.cf后,想要使新的配置生效,虽然可以通过重新启动服务来实现,但是如果当前Postfix服务正在运行,重新启动服务就会花费不少的时间。最好的方法就是让Postfix重新载入主配置文件的内容,并使新的配置立即生效。

5.自动启动Postfix服务如果需要让Postfix服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“postfix”服务,在其前面加上星号(*),然后选择“确定”即可,如图所示。

注意:Postfix服务使用TCP协议的25端口,如果Linux服务器开启了防火墙功能,

就应关闭防火墙功能或设置允许TCP协议的25端口通过。可以使用以下命令开放

TCP协议的25端口。

iptables-IINPUT-ptcp--dport25-jACCEPT

postfix邮件服务器的邮件保存在哪里

邮件内容肯定是保存在像D:\MAIL这样的目录下

一般是/home/mail这样然后域名账号的目录下

数据库的功能是存储相关的账号信息,就想QQ邮箱WEB登陆设置了一些东东都是保存在数据库的