Main.cf主要参数
#this file replace main.cf of postfix
soft_bounce = no
(设定成yes时,原本应该退信的动作,会改成将邮件放回队列,等待下次递送;此外,原本应该响应永久错误(5xx)的状况,一律改成以暂时性错误码(4xx)响应)
queue_directory = /var/spool/postfix
(队列目录路径,queue_minfree:邮件队列中可用的空间大小。缺省为无限制。建议该值最好时message_size_limit的数倍以便于处理大邮件。)
command_directory = /usr/sbin
(postfix的命令行管理工具(postcat、postqueue等)的存放目录)
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
(设置邮件及邮件队列的所有者为postfix)
default_privs = nobody
myhostname = mail.mail23.cn4e.com
(设置邮件服务器的主机名)
mydomain = mail23.cn4e.com
(设置邮件服务器的域名)
myorigin = $myhostname
(网域名称,要附加到只含人名部份不完整邮件地址的网域名称)
inet_interfaces = all
(设置postfix 服务监听的端口)
unknown_local_recipient_reject_code = 450
(响应码,客户端试图寄信给不存在的本地网域用户时,Postfix用于拒绝客户端的SMTP响应码)
mynetworks = 127.0.0.1/32,202.67.xxx.xxx/32
(设置可转发(Relay)哪些网络的邮件,通过本邮件系统寄出邮件的网络地址或IP地址)
alias_maps =mysql:/etc/postfix/mysql_virtual.cf
(指定使用的别名数据库,当邮件在本地投递时,local 投递代理进程会在别名数据库(linux下为/etc/aliases)中查询收件人的别名。该操作不会作用于邮件信头中的地址。)
alias_database = mysql:/etc/postfix/mysql_virtual.cf
(可以通过alias_database 参数控制别名数据库的路径)
home_mailbox = Maildir/
(表示要使用maildir格式的邮箱)
header_checks = regexp:/etc/postfix/header_check
(限制接收邮件的信头格式,如果符合指定的格式,则拒绝接收该邮件)
local_destination_concurrency_limit = 1
(并发进程的限制,local_destination_concurrency_limit:控制对同一本地收件人的最大同时投递的邮件数目。因为对本地同一收件人投递邮件时投递工作只能一个接一个的进行,所以设得在大也没用。)
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id &sleep 5
(这两项默认,不要去改)
sendmail_path = /usr/sbin/sendmail
(Postfix的sendmail兼容程序的完整路径.sendmail主要是供脚本或命令行用来寄送邮件)
newaliases_path = /usr/bin/newaliases
(用于重建别名数据库的newaliaser程序的完整路径)
mailq_path = /usr/bin/mailq
setgid_group = postdrop
(Postfix用来提交邮件或管理队列的组标识符)
manpage_directory = /usr/local/man
(Postfix在线说明书的存放目录)
sample_directory = /etc/postfix
(存放Postfix配置文件样本的目录)
readme_directory = no
tls设置
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/key.pem
smtpd_tls_cert_file = /etc/postfix/cert.pem
smtpd_tls_CAfile = /etc/postfix/CAcert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
allow_untrusted_routing = no
smtpd_sasl_auth_enable = yes
(指定是否启用SASL作为SMTP认证,默认为no)
smtpd_sasl_local_domain =
(采用Cyrun-SASL V2版进行认证,这里不作设置)
smtpd_recipient_restrictions=check_sender_accesshash:/etc/postfix/local_out_senders,permit_mynetworks,mysql:/etc/postfix/mysql_smtpd_rec_limit.cf,permit_sasl_authenticated,permit_auth_destination,reject
(通过收件人地址进行过滤,通过发件人在执行RCPT TO 命令时提供的地址进行限制.
permit_auth_destination:不管客户端的主机名,只要符合以下的条件,就接受SMTP 连接请求:
* 解析后的目标地址符合$relay_domains 及其子域
* 解析后的目标地址符合$inet_interfaces、$mydestination 或$virtual_maps
reject_unauth_destination:不管客户端的主机名,只要符合以下的条件,就拒绝该客户端SMTP连接请求:
* 解析后的目标地址符合$relay_domains 及其子域
* 解析后的目标地址符合$inet_interfaces、$mydestination 或$virtual_maps
check_recipient_access:根据解析后的目标地址、父域搜索access 数据库。如果搜索的结果为REJECT或者 “[45]XX text” 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。
reject_unknown_recipient_domain:如果收件人的邮件地址在DNS 中没有相应的A 或 MX记录则拒绝该客户端的连接请求)
smtpd_restriction_classes = local_only
(自定义规范等级的名称,每一组规范等级,都是由一系统UBE限制条件组成)
local_only = check_recipient_accesshash:/etc/postfix/local_domains,reject
broken_sasl_auth_clients = yes
(表示是否兼容非标准的SMTP认证)
smtpd_sasl_security_options = noanonymous
(用来限制某些登录方式,参数设置为noanonymous,则表示禁止采用匿名登录方式)
virtual_gid_maps = static:12
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual.cf
(指定含有虚拟别名域定义的文件路径)
virtual_mailbox_base = /mail
(虚拟邮箱文件的相对路径起点)
virtual_mailbox_domains =mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps =mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
message_size_limit = 524288000
(限制postfix 队列文件的大小。)
mailbox_size_limit = 629145600
(单封邮件的邮箱大小)
virtual_transport = maildrop
(用于投递邮件到虚拟邮箱地址的默认传输服务)
virtual_uid_maps = static:12346
bounce_size_limit = 50000
(限制某一邮件不可投递时,返回给发件人不可投递报告的大小)
smtpd_client_restrictions =mysql:/etc/postfix/mysql_smtpd_client_limit.cf,permit_sasl_authenticated
(限制可以向Postfix发起SMTP连接的客户端的主机名或IP地址,限制规则是按照查询的顺序进行的,)
smtpd_sender_restrictions =permit_mynetworks,mysql:/etc/postfix/mysql_smtpd_sender_limit.cf,reject_sender_login_mismatch,permit_sasl_authenticated,reject_unknown_sender_domain
(通过发件人地址进行限制,通过发件人在执行MAIL FROM命令时提供的地址进行限制。可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序进行的,第一条符合条件的规则被执行.
reject_unknown_sender_domain:如果MAIL FROM 命令提供的主机名在DNS中没有相应的A 或MX 记录则拒绝该客户端的连接请求。
check_sender_access:根据MAIL FROM 命令提供的主机名、父域搜索access数据库。如果搜索的结果为REJECT 或者 “[45]XX text” 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY或数字则接受该客户端的连接请求。可以通过该参数过滤来自某些不受欢迎的发件人的邮件。)
smtpd_delay_reject=no
(RCPT TO指令前的过滤动作,设置为no来使过滤动作立刻生效)
maildrop_destination_recipient_limit = 1
(Postfix默认会一次性的给多个收件人发邮件,而maildrop每次只处理一个收件人,所以只有第一个收件人能收到邮件,其他的则会被maildrop不留痕迹的丢弃。把maildrop_destination_recipient_limit设置为1迫使Postfix每次只处理一个收件人,使maildrop能正常工作。)
disable_vrfy_command =yes
(限制外界使用VERY命令来侦测收件地址的有效性,垃圾邮件发送者常用这种技巧来收集邮件地址)
smtpd_helo_restrictions =mysql:/etc/postfix/mysql_smtpd_client_limit.cf,mysql:/etc/postfixsmtpd_recipient_limitmysql_smtpd_helo_limit.cf
(指定客户端在执行HELO命令时发送给POSTFIX的主机名,缺省地,postfix接收客户端发送的任意形式的主机名。可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序进行的,第一条符合条件的规则被执行。)
default_destination_recipient_limit = 10
(对同一封邮件的收件人数目限制,通过default_destination_recipient_limit参数来控制postfix 的投递代理(如smtp进程)可以将同一封邮件发送给多少个收件人。也可以用明确指出该投递代理的参数来覆盖该缺省值。如用smtpd_recipient_limit来指定smtp投递代理可以将同一封邮件发送给多少个收件人)
smtpd_helo_required = yes(参数指定客户端在SMTP会话的开始是否发送一个HELO命令)
smtpd_helo_required = yes
smtpd_sender_login_maps =mysql:/etc/postfix/mysql_sender_login_maps.cf
maximal_queue_lifetime = 6h
(设置postfix 在放弃投递而返回不可投递信息前,被延迟邮件再deferred 邮件队列中的生存时间。
minimal_backoff_time:当一封邮件投递失败后,邮件队列将在一段时间内忽视该邮件的存在,也就是时间邮票。该参数就是用来设置最小的
时间邮票。缺省值为1000 秒。
maximal_backoff_time:设置最大的时间邮票。)
queue_run_delay = 3600s
(关于延迟邮件的再投递控制,设置队列管理进行扫描deferred 邮件队列的频率)
sender_bcc_maps = mysql:/etc/postfix/mysql_sender_bcc.cf
(将发信人包含在map文件中的邮件被分到指定邮箱;)
recipient_bcc_maps = mysql:/etc/postfix/mysql_rec_bcc.cf
(将收件人包含在map文件中的邮件被分到指定邮箱。)
fallback_relay = mysql:/etc/postfix/mysql_fallbackrelay.cf
(如果找不到或无法到达正常的目的地,则将邮件转交给此参数列出的IP地址,主机或网域)
smtpd_reject_unlisted_sender = yes
(域伪装)
html_directory = no
smtpd_hard_error_limit = 10
(当错误计数器的值超过该参数指定的值时,postfix中断同该客户端的连接。)
smtpd_banner = $myhostname MAIL@35 – ESMTP Mail Service x64Version: 3.00.00
(设置向用户显示的主机名和版本信息)
default_process_limit = 100
(进程数限制,可以通过default_process_limit 参数来控制postfix系统同时可以运行的最大进程数目)
default_destination_concurrency_limit = 10
(控制初始化连接后对同一目标主机的最大并发连接数目。缺省值为10。
当向同一目标主机发出SMTP 连接时,postfix 初始化发出两个SMTP 连接,
如果投递成功则增加并发的SMTP 连接数目,遇到拥塞时又减少并发连接的
数目。postfix 中通过以下的参数对同一目标主机的并发连接进行控制:
*initial_destination_concurrency:控制对同一目标主机的初始化并发连接数目。缺省值为2。)
default_recipient_limit = 100
(限制queue manager为各个传输服务保留在内存里的收件人数量)
smtpd_recipient_limit = 100
(指定smtp 投递代理可以将同一封邮件发送给多少个收件人)
bounce_queue_lifetime = 3h
(退信(弹回)在队列中的保留时间。超过此时间,被认为是无法投递的)
smtpd_client_connection_count_limit=200
smtp_data_done_timeout=3600
(SMTP client送出”.”表示信息内容结束之后,最多可以等待SMTP server在多长时间内响应)
smtp_data_init_timeout=3600
smtp_data_xfer_timeout=3600
(SMTP client在传送信息的过程中,可以容忍的等待时间)
hopcount_limit = 50
(信头中Received的最大数,阻止邮件的一直循环)
bounce_template_file = /etc/postfix/bounce.cf
data_directory = /var/lib/postfix
always_add_missing_headers = yes
(Postfix总是自动为没有message-id的邮件添加message-id:)