postfix(postfix 和 suffix 的区别)

本文目录
- postfix 和 suffix 的区别
- postfix 是做什么的软件啊
- 如何在Linux停止和启动postfix服务的命令
- 如何在终端用postfix发邮件
- postfix与extmail是什么关系
- postfix 发垃圾邮件 怎么配置
- postfix 的常见功能和配置有哪些
- 没有域名如何配置postfix
postfix 和 suffix 的区别
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。但suffix比较常用
postfix 是做什么的软件啊
一、 postfix概述
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix的官方站点(
如何在Linux停止和启动postfix服务的命令
1.启动Postfix服务
启动Postfix服务的命令为:/etc/init.d/postfix start
命令执行后如图所示,则表示启动Postfix服务成功。
2.停止Postfix服务 停止Postfix服务的命令为: 命令执行后如图所示,则表示停止Postfix服务成功。
3.重新启动Postfix服务 重新启动Postfix服务的命令为:/etc/init.d/postfix restart
命令执行后如图所示,则表示重新启动Postfix服务成功。
4.重新载入Postfix主配置文件 重新载入Postfix主配置文件的命令为:
/etc/init.d/postfix reload
命令执行后如图所示,则表示重新载入配置文件成功。
每当修改了Postfix主配置文件/etc/postfix/main.cf后,想要使新的配置生效,虽然可以通过重新启动服务来实现,但是如果当前Postfix服务正在运行,重新启动服务就会花费不少的时间。最好的方法就是让Postfix重新载入主配置文件的内容,并使新的配置立即生效。
5.自动启动Postfix服务 如果需要让Postfix服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“postfix”服务,在其前面加上星号(*),然后选择“确定”即可,如图所示。
注意:Postfix服务使用TCP协议的25端口,如果Linux服务器开启了防火墙功能,
就应关闭防火墙功能或设置允许TCP协议的25端口通过。可以使用以下命令开放
TCP协议的25端口。
iptables -I INPUT -p tcp --dport 25 -j ACCEPT
如何在终端用postfix发邮件
postfix 是SMTP软件
centos安装了Postfix后启动程序
如果在服务器上直接使用mail 命令即可发送
比如:mail -s “test” 333333@163.com
本地测试使用telnet到服务器的25端口
输入账号和密码
postfix与extmail是什么关系
postfix是邮件服务系统,而extmail是一个基于web的邮件操作软件,最终的邮件的处理还是通过postfix。
postfix+extmail参考安装方法:
postfix 发垃圾邮件 怎么配置
postfix提供四种检查客户端身份的参数,每一种参数都可设定一系列决定如何响应客户端的限制条件。如果条件成立,可能的响应动作包括ok(收下邮 件)与reject(当场拒收)。例如,你可疑设定一条检查规则。挡掉来自特定ip地址的邮件。相对的,如果条件不成立,则由后续条件继续处理(这种结果 通常以DUNNO表示)。
语法检查参数
postfix内置一系列专用检查语法的参数,可用来核验客户端的smtp对话内容是否符合标准规定。由于垃圾邮件发送者通常不遵守标准规定,则对于不符合规定的客户端或邮件,你可以要求postfix予以拒收。有些语法检查参数也可作为客户端判别规则。
内容检查
你可以将一组描述垃圾邮件特征的正则表达式写在查询表中,要求postfix依据样式表来检查邮件的标题与正文内容。
自定义过滤规则
你可将一系列内置的限制条件组织成新的过滤规则。
设定postfix的垃圾邮件标识参数时,你还必须指定如何处理被辨认出来的垃圾邮件。一般而言,postfix可以当场拒收,或是收下邮件但是暂存在另一个队列,或是交给外部过滤程序去处理。
客户端判别规则
下列过滤规则可设定一系列对客户端信息的限制条件:
smtpd_client_restrictions
smtpd_helo_restrictions
smtpd_sender_restrictions
smtpd_recipient_restrictions
smtpd_data_restrictions
上述的每一项参数,分别用于检查smtp对话过程中的特定阶段。在每一个阶段,客户端分别提供不同类型的信息。potfix依据你给各规则设定的限制条件来检查这些信息。
smtp对话过程(简述)
首先,一个smtp client通过socket连接到postfix。由于是socket方式连接,所以postfix在建立连接时就可以知道客户端的ip地址。 smtpd client_restrictions让你可依据客户端的ip地址或主机名称来决定是接收还是拒收该信息。连接成功后,客户端送出HELO命令来显示自 己(送信方)的主机名称。postfix依据smtpd_helo_restrictions的限制条件来检查这个主机名称,借此决定应该收下还是拒收邮 件。
下一步,客户端发出mail from命令来显示寄件人的邮件地址,接着以一个rcpt to命令来表明收件人的邮件地址。寄件人与收件人的邮件地址的限制条件,分别设定在smtpd_sender_restrictions与 smtpd_recipient_restrictions中。
如果到DATA命令为止之前的一切都可以接收,客户端就可以开始传送邮件的内容。邮件内容分成两部分,前半部是标题,由header_check过滤;后 半部是正文(body),由check_body过滤。如果最后的标题与正文检查也过关,postfix就收下信息,并交给适当的MDA执行投递操作。
注: 很多垃圾邮件发送者在HELO步骤送出的是“收信方”的主机名称,任何遵守规定的smtp client都不会这样做,所以你可以在smtp_helo_restrictions设一个限制条件,禁止对方使用我们的主机名称。
设定限制条件
当你设定postfix的UBE限制条件时,不一定要将它们分别设定给不同的参数,可以集中在同一个参数中,而对其他参数不加任何限制。如果你的mail.cf没有设定UBE过滤规则,则postfix的默认配置看起来就像这样:
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
permit_mynetworks, reject_unauth_destination
这使得只有局域网上的主机可以通过postfix来转发邮件,而其他系统一律不允许,除非它们的信是寄给postfix所辖网域的用户。
postfix 提供一组内置的限制条件,而你也可以用访问表(access map)来定义自己的限制条件。许多人第一次面对postfix的UBE限制条件时,常误以为某些条件只能用于特定过滤规则,其实不然。你必须记住一个重 要概念:任何限制条件都可以用于任何过滤规则。虽然逻辑上check_helo_access条件应该是设定给 smtpd_heko_restrictions,但其实它也可以被用于smtpd_sender_restrictions或任何其他过滤规则。 postfix的这种设计,主要是为了让你可以更有灵活性的安排限制条件的顺序。
postfix 的常见功能和配置有哪些
postfix是一种MTA,用来收发邮件
service:postfix
port:25
proto:smtp
datafile:/var/spool/mail/user
queue:/var/spool/postfix
log:/var/log/maillog
paraments:
【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.cf transport_maps = hash:/etc/postfix/transport(文件可以随意,这个时默认的)
domain smtp:[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 -i q_id 把指定的邮件再发送一次
postsuper -d All 删除queue中的所有邮件
postsuper -d ALL queuename 删除特定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 *** //表明身份
mail from: user@domain //邮件来源
rcpt to: user@domain //邮件发往
data //之后输入邮件的内容
subject: //主题,下面就可以输入邮件的正文
【alias】
/etc/aliases里可以定义别名,到达MTA本地的邮件会走这个文件,
例如:定义了a1:root,创建新的数据库,newaliases 则发给a1的邮件会存在/var/mail/root中
【virtual aliases domain】
虽然感觉并没有什么卵用,但是还是能起到一点点一个MTA上面可以接受多个域的邮件,存放地方还不会混乱的一个机制
/etc/postfix/main.cf :
virtual_alias_domains=domain1,domain2
virtual_alias_map = hash:/etc/postfix/virtual(默认为该文件,可以修改)
/etc/postfix/virtual
user@domain1 user1(local user) //发给某个域的某个用户的邮件存在/var/spool/mail/user1中
【virtual mailbox domain】
/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@domain file //发给该用户的邮件会存在该文件里
user@domain dir //发给该用户的邮件会存在该目录下的一个文件里,这样,每一封邮件都有一个文件
postmap /etc/postfix.vmailbox
chown 5000:5000 存放邮件的上层目录
【sasl】
加在MTA外面的一层认证,当用我这个MTA帮忙转发的时候,就像RELAYHOST和transport中被信任以外,还可以时通过验证的,有该MTA的user去做验证
1.install cyrus-sasl,cyrus-sasl-plain
2. /etc/postfix/main.cf:
smtpd_sasl_path = smtpd //默认值
3./etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN //默认就有
4. /etc/sysconfig/saslauthd:
MECH=shadow/pam
5. saslauthd restart
6.# testsaslauthd -u xxx -p xxx //用用户和密码测试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’ | openssl base64 //用户和密码生成base64的密文,当另一台MTA将邮件传过来转发时,要进行认证
备注:sasl 采用 /etc/shadow 文件验证用户的时候,selinux 会有限制,为了解除selinux 的限制,需要打开 saslauthd_read_shadow 布尔值
test:
telnet:
auth plain 密文
user username
pass password
认证成功就可以帮助转发了
没有域名如何配置postfix
没有域名配置postfix方法如下:
1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。
2. incoming:放置正在到达或队列管理进程尚未发现的邮件。
3. active:放置队列管理进程已打开了并正准备投递的邮件,该队列有长度的限制。

本文相关文章:
postscript教程(postscript用法!急求!)
2026年9月6日 06:10
microsoft sql(Microsoft SQL Server是什么软件)
2026年9月4日 13:10
Host是什么意思?如何使用route命令查看 Linux内核路由表
2026年8月26日 13:20
word中如何设置页码(microsoft word文档怎么设置页码)
2026年8月22日 09:50
更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00






