— 来自 Postfix 权威指南,以下为读书笔记 —
— main.cf —
#+————————————————-+
# |# 参数说明.
# |# “可能值”
# |参数 = 值
#+————————————————-+

# “2bounce”错误类型的通知对象.
# 邮件地址
2bounce_notice_recipient = postmaster
# postfix因访问条件限制而拒收邮件时,返回客户端的SMTP响应码.
# 响应码
access_map_reject_code = 554
# 列出local MDA所使用的别名数据库.
# 别名表
alias_maps = hash:/etc/aliases, nis:mail.aliases
# 当local MDA 展开别名表时,禁止或允许local MDA 将邮件投递到外部文件.
# 逐项列出
allow_mail_to_files = alias, forward
# DNS未普及前,发信人可用特殊格式的收件地址影响传送路径.
# 这种技术称为”percent hack”
# yes/no
allow_percent_hack = no
# 此参数要求postqueue 和 postdrop从指定的目录读取postfix的配置文件.
# 目录
alternate_config_directories = /usr/local/postfix/conf
# 是否以myorgin的值补齐只含用户名部分的完整邮件地址.
# yes/no
append_at_myorign = no
# VERP提供MLM用来处理退信的功能,此功能意义个特殊的分割字符,将”列表拥有者”
# 与”原收件人地址”结合在一起.
# 主机名/网域名
authorized_verp_clients = $mynetworks
# 读取Berkeley DB(hash:)或btree查询表时,所用的缓冲区大小.
# 字节
berkeley_db_read_buffer_size = 131072
# biff 是一个收到新邮件时,发送通知给本地用户的小程序.
# yes/no
biff = no
# 限制body_checks的检查范围.
# 字节
body_checks_size_limit = 51200
# 无法寄出邮件时,master daemon将状态信息填入日志的名称,通常不需要修改.
# master.cf定义的服务名称之一
bounce_service_name =bounce
# 指出规法映射表的类型与范围,规范映射表定义”内部地址格式”与”规范地址格式”
# 的对应关系;postfix依照规范映射表,决定如何改写寄件人邮件地址.
# 各类型的查询表
canonical_maps = hash:/etc/postfix/canonical_maps
# Postfix的命令行管理工具(postcat|postqueue &)的存放目录.
# 目录
command_directory = /usr/sbin
# 当local MDA 将邮件交给外部命令后,postfix可允许外部命令有多长的运行时间.
# 计时单位
command_time_limit = 1000s
# 将邮件传递给内容过滤服务.
# 传输服务
content_filter =
# postfix daemons 处理一次服务的限制时间.
# 计时单位
daemon_timeout = 18000s
# 当postfix与特定的主机交互时,可特别提升日志记录的详细程度,
# 以提供足够的调试信息.
# 主机名/域名
debug_peer_list = example.com, mail.ora.com
# 传输服务(定义于master.cf)对于同一目的地同时投递的数量上限;如没明确规定,
# 则以default_destinations_concurrency_limit为默认值.注意:此参数的限制对象
# 时”目的地”,而不是”传输服务”本身.决定各个服务同时投递上限的参数
# 是 default_transport_concurrency_limit.
# 纯数值
default_destinations_concurrency_limit = 20
# 当queue manager 以纯优先度较高的传输服务排挤优先较低的MDA时,
# 该服务处理的收件人上限.
# 纯数值
default_extra_recipient_limit = 1000
# 任何传输服务可同时达到的进程上限.注意:此参数限制的是各个”传输服务”,如要
# 针对个别”目的地”做限制,应该使用 default_destination_limit.
# 纯数值
default_process_limit = 100
# 限制queue manager为个传输服务保留在内存里的收件人数量.
# 纯数值
default_recipient_limit = 10000
# VERP 是提供MLM用来退信的技术,此技术以一个特殊的分割字符,将
# “列表拥有者地址”与”原收件人地址”结合在一起;此参数决定那些字符可供verp使用.
default_verp_delimiters = +=
# 暂时无法寄出邮件时, master dmemon 用来交付状态信息并维护日志的服务.
# master.cf定义的服务之一
defer_service_name = defer
# “delay”是多种可能的错误类型之一.
# 邮件地址
delay_notice_recipient = postmaster
# 当postfix执行投递时,最多可以尝试几次取得邮箱文件的单独锁定.
# 纯数值
deliver_lock_attempts = 20
# 当postfix决定邮件的投递目的地时,通常先查询收信网域的DNS MX 记录.
# yes/no
disable_dns_lookups = no
# 当远程系统没有声明8-bit MIME时,postfix会自动将8-bit MIME格式转换成7-bit.
# yes/no
desable_mime_output_conversion = no
# 通常postfix允许客户端使用smtp vrfy命令,将disable_vrfy_command设为yes,
# 可避免外界使用vrfy命令探测邮件地址的有效性.
# yes/no
disable_vrfy_command = no
# 无法将退信通知寄达原寄信人时,系统就会产生”双退信通知”,并将此通知寄到
# double_bounce_sender 指定的地址.
# 邮件地址
double_bounce_sender = double-bounce
# 无法寄出含有空寄信人地址(即<>)的邮件时,退信通知的收件地址.
# 邮件地址
empty_address_recipient = MAILER-DAEMON
# 无法递送邮件时,master daemon用来产生错误报告的服务.
# master.cf定义的服务名称之一
error_service_name = error
# 要被导出到外部进程的所有环境变量.
# 环境变量
export_environment = TZ, MAIL_CONFIG
# 如果找不到或无法到达正常的目的地,则将邮件转交给此参数列出的IP地址,主机
# 或网域.
# 主机名/域名
fallback_relay = example.com
# 速清服务(fast flush)适用的ip/主机/域
# 主机名/域名
fast_flush_domains = $relay_domains
# fast flush服务地洞速清操作的间隔时间.
# 计时单位
fast_flush_refresh_time = 12h
# postfix 要fork(衍生)一个新进程时,最多尝试多少次.
# 纯数值
fork_attempts = 5
# 设定路径名称给forward_path参数时,可以适用$user这种postfix展开的宏,
# 它随状况决定当时邮件的投递路径. forward_expansion_filter参数列出展开宏时
# 所容许的字符.不容许的字符,会被替换成下划线”_”.
# 字符
forward_expansion_filter =
1234567890!@%-_=+:,./abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

# 为了组织队列文件,postfix为每个队列都建立了一个子目录结构,
# 此参数可以设置子目录结构在队列目录下的层数.
# 纯数值
hash_queue_depth = 1
# 限制标题里的地址最多几个记号(tokens)可被postfix改写.
# 超过的记号一律予以丢弃.根据RFC 2822的定义,单词,”@”和”.”都是记号.
# 纯数值
header_address_token_limit = 10240
# 限制邮件标题可包含字符(字节)数.
# 纯数值
header_size_limit = 102400
# postfix通常将邮件投递到邮箱目录下的邮箱文件,此参数设置邮箱文件的位置.
# 路径名
home_mailbox = mail/mbox/
# 当postfix向DNS Server查询MX记录却得不到响应时,它会隔一段时间再试一次.
# 将此参数设为yes,让postfix第一次失败后,立即查询A记录.
# yes/no
ignore_mx_lookup_error = no
# postfix没收下一封邮件,至少停顿多长时间之后才开时再接收新邮件.
# 计时单位
in_flow_delay = 1s
# 对同一地址,初始的投递进程数量.
# 纯数值
initial_destination_concurrency = 5
# 内部通信之间的闲置时间上限.
# 计时单位
ipc_idle = 100s
# 邮件中任何文字行的长度上限.
# 纯数值
line_length_limit = 2048
# 限制LMTP client完成一次TCP联机最长可以等待的时间.设为”0″,表示取消超时.
# 计时单位
lmtp_connect_timeout = 0
# 限定 LMTP client 在送出 LMTP DATA命令后,LMTP SERVER至少要在多少时间内响
# 应.
# 计时单位
lmtp_data_init_timeout = 120s
# 限定 LMTP client 在送出 LMTP LHLO命令后,LMTP SERVER至少要在多少时间内响
# 应.
# 计时单位
lmtp_lhlo_timeout = 300s
# 限定 LMTP client 在送出 LMTP QUIT命令后,LMTP SERVER至少要多少时间内响应.
# 计时单位
lmtp_quit_timeout = 300s
# 限定 LMTP client 在送出 LMTP RSET命令后,LMTP SERVER至少要多少时间内响应.
# 计时单位
lmtp_rset_timeout = 300s
# 当master.cf没有定义lmtp服务时,哪个TCP port可供LMTP联机之用.
# 端口号
lmtp_tcp_port = 24
# 设定同一个本地收件人最多可以由几个投递进程.
# 纯数值
local_destination_concurrency_limit = 2
# 含有所有本地邮件地址的查询表.SMTP server借此拒收外界寄给不明用户的邮件.
# 查询表
local_recipient_maps = unix:passwd.byname $alias_maps
# 外界寄给不明用户的邮件,全部转寄到luser_relay所指的地址.
# 邮件地址
luser_relay = info
# postfix以此参数指定的系统账号,作为队列文件的拥有者以及Postfix daemon进程
# 的运行身份.
# 系统账号名
mail_owner = postfix
# 邮件目录(存放邮件文件的目录)的完整路径.
# 目录
mail_spool_directory = /var/mail/spool
# 用于将邮件投递到邮箱的外部命令.最常用的大概是procmail.
# 路径名
mailbox_command = /usr/local_bin/procmail
# 当postfix将邮件投递到文件时,所使用的锁定方法.(随系统而已)
# 逐项列出
mailbox_delivery_lock = fcntl,dotlock
# 用于执行邮箱投递操作的传输服务.
# 传输服务
mailbox_transport =
# postfix在线说明书.
# 目录
manpage_directory = /usr/share/man
# 在邮件离开网关系统前,将寄信人地址的内部主机名部分,替换成此参数指定的域名.
# 域名
masquerade_domains = example.com
# 除queue manager 之外的postfix服务器进程,等待信服无情求的限制时间上限.
# 计时单位
max_idle = 100s
# 在每次无法投递出邮件时, queue manager 便会将下次递送的时间延后,延长后的
# 时间不超过此参数设定.
# 计时单位
maximal_backoff_time = 4000s
# 限制单封邮件的最大长度.
# 字节
message_size_limit = 10240000
# 列出用于对比外来邮件的每个MIME标题字段的模式表.模式表的索引键,是描述MIME
# 标题字段特征的正则表达式(即’模式’),对应值是要对符合条件的邮件的操作.
# 默认值:$header_checks
# 查询表
mime_header_checks = regexp:/etc/postfix/mime_header_checks
# 每次无法投递出邮件时,queue manager 便会延迟下次的投递时间,延长后的间隔
# 时间不得低于此参数设定.
# 计时单位
minimal_backoff_time = 1000s
# 邮件系统的域名.
# 域名
mydomain = example.com
# 列出可以通过本邮件系统寄出邮件的网络地址或ip.mynetworks和mynetworks_style
# 都可以用来界定转发服务的服务对象,
# 但是,mynetworks的优先级高于mynetworks_style.
# 网络地址
mynetworks = localhost,
# 要附加到人名部分的不完整邮件地址的域名.
# 域名
myorigin = $myhostname
# 用于重建别名数据库的newaliases程序的完整地址.
# 路径名
newaliases_path = /usr/bin/newaliases
# 列出出发发送通知函的错误类型,通知对象的邮件的地址,定义在各错误类型
# 的class_notice_recipient参数中.
# bounce,2bounce,delay,policy,protocol,resource,software的任意组合
notify_classes = resource, software
# 此参数决定查询表里的domain.tld格式的域名,是否能涵盖所有子网.
# 如果设为no,则只有.domain.tld格式的域名才算涵盖其下所有子网.
# yes/no/任何使用查询表的参数名
parent_domain_matches_subdomains = debug_peer_list,
fast_flush_domains,mynetworks,
permit_mx_backup_networks,
qmqpd_authorized_clients,relay_domains,
smtpd_access_maps

# 供master daemon用于撷取本地回复邮件的服务.
# master.cf 定义的服务名称之一
pickup_service_name = pickup
# master daemon用于存放其锁定文件(进程本身PID文件)的目录,指定的路径是
# 相对于postfix邮箱目录(mail_spool_directory)下.
# 目录
process_id_directory = pid
# 如果运行postfix server的机器位于proxy或nat后台的内部网络上,而且充当备用
# MX主机,那么当MX系统离线时,它有可能遭遇邮件循环.此参数列出哪些网络接口会
# 从Proxy或NAT网关收进邮件,让postfix免受邮件循环.
# ip地址
proxy_interfaces = 192.168.15.23
# 当特定目的地邮件阻塞于活动队列时,至少每隔多久要发一次警告,”0″取消警告.
# 计时单位
qmgr_clog_warn_time = 300s
# 限制活动队列最多可容纳多少封邮件.
# 纯数值
qmgr_message_active_limit = 20000
# 每封邮件至少有多少收件地址可被存储在内存里.
# 纯数值
qmgr_message_recipient_minimum = 10
# QMQP服务为每一组邮件主机提供一个共同的集中式邮件队列, 此参数
# 定义QMQP server在发送错误响应给客户端之前,可以停顿的时间.
# 这是为了缓和行为混乱的客户端的混乱程度.
# 计时单位
qmqpd_error_delay = 1s
# postfix队列的主目录.
# 目录
queue_directory = /var/spool/postfix
# 每隔多久扫描一次等待队列,重新投递邮件.
# 计时单位
queue_run_delay = 1000s
# 指出定义”RBL域名”与”RBL回复信息模板”对应关系的查询表. 使用reject_rbl或
# reject_rhsbl来拒收垃圾邮件时,postfix依据本参数的查询表解读RBL查询结果的
# 意义.如果查询表没列出postfix使用的RBL域,则使用default_rbl_reply提供
# 的样板来解读查询结果.
# 查询表
rbl_reply_maps = hash:/etc/postfix/reply
# 指出收件人的正确地址.操作流程与canonical_maps相似,只不过改写的是收信人
# 地址,而非寄件人地址. recipient_canonical_maps优先级高于canonical_maps.
# 查询表
recipient_canonical_maps = hash:/etc/postfix/canonical
# 基于客户端限制条件(smtpd_client_restriction)而拒收邮件时,返回客户端的
# SMTP响应码.
# 响应码
reject_code = 554
# 因客户端不符合使用转发服务的资格,而拒绝发信时,所使用的响应码.
# 响应码
relay_domains_reject_code = 554
# 用于递送转发邮件的传输服务.
# 传输服务
relay_transport = relay
# 定义已移出的邮件地址或域的新地址.
# 查询表
reloated_maps = hash:/etc/postfix/relocated
# 决定postfix是否要处理用户名部分含有”寄信方指定的邮递路径”的邮件地址.设置
# 成yes时,postfix会严格遵守RFC 822 的规定,标记含有特殊符号(如@)的用户名.
# yes/no
resolve_dequoted_address = yes
# 存放postfix配置文件样本的目录
# 目录
sample_directory = /etc/postfix
# postfix的sendmail兼容程序的完整路径.
# 路径名
sendmail_path = /usr/bin/sendmail
# 供postfix使用,提交邮件或管理队列的组标识符(Group ID).
# 组的名称/GID值
setgid_group = postdrop
# 用于回复postfix队列状态的服务.
# master.cf定义的服务名称之一
showq_service_name =showq
# 当SMTP client要联机到远程的邮件服务器时,应该是用的网络地址接口的ip地址.
# 只有在multihomed系统(安装多张网卡,而且分别连接不同的网络),才有必要设置
# 此参数.
# ip地址
smtpd_bind_address = 192.168.15.22
# 在 SMTP client 发出”.”表示的内容结束之后,最多可以等待 SMTP server在多长
# 时间内的响应.
# 计时单位
smtp_data_done_timeout = 600s
# SMTP client在传送信息过程中,可以容忍的等待时间.如果联机阻塞时间超过
# 此值,SMTP client 会主动断开连接.
# 计时单位
smtp_data_xfer_timeout = 180s
# 限制通过SMTP client传出的每封邮件,最多由多少位收件人.
# 纯数值
smtp_destination_recipient_limit =
$default_destination_recipient_limit
# SMTP client在发送出SMTP HELO命令后,等待服务器响应的限制时间.
# 计时单位
smtp_helo_timeout = 300s
# SMTP client 送出SMTP MAIL FROM命令后,等待服务器响应的限制时间.
# 计时单位
smtp_mail_timeout = 300s
# 若 SMTP server是位于老式的Cisco PIX防火墙后,当SMTP client送出的”.”与
# “CR/LF”结束信号,是分别放在两个不同的封装包时,这类防火墙会干扰SMTP通信,
# postfix能自动侦测此问题,并借由延迟送出”.”与”CR/LF”的时间来避免这种情况.
# 此参数指出SMTP client在传送完邮件内容后,必须等待多久才能送出”.CRLF”
# (如此可确保这这三个字符会被编在同一个封装包).
# 计时单位
smtp_pix_workaround_delay_time = 10s
# SMTP client 在发出SMTP QUIT命令之后,等待服务器响应的限制时间.
# 计时单位
smtp_quit_timeout = 300s
# SMTP client 在发出SMTP RCPT TO 命令之后,等待服务器响应的限制时间.
# 计时单位
smtp_rcpt_timeout = 300s
# 当远程的SMTP server返回5xx响应码时,postfix可以直接退信给原寄件人或试着
# 将邮件寄到目标域的其他MX主机.此参数决定postfix的行为.
# yes/no
smtp_skip_5xx_greeting = yes
# 跟在220状态码后的SMTP问候信息.
# 格式样板
smtpd_banner = $myhostname ESMTP $mail_name
# 客户端发出SMTP DATA时,所要检查的UBE限制条件.
# UBE限制条件组合
smtpd_data_restrictions = reject_unauth_pipelining
# 当客户端引发错误时,postfix初始等待时间,当错误超过smtpd_soft_error_limit
# 的限制时,每次错误延长”1″秒等待时间.
# 计时单位
smtpd_error_sleep_time = 1s
# SMTP server所允许展开宏的字符.
# 字符
smtpd_expansion_filter =
\t\40!”#$%&'()*+,-./0123456789:;<=>?@
ABCDEFGHIJKLMNOPQISTUVWXYZ[\\]^_`
abcdefghijklmnopqistuvwxyz{\}~

# 决定postfix是否要求客户端必须送出HELO/EHLO命令,才开始smtpd对话.
# yes/no
smtpd_helo_required = no
# 限制SMTP server命令历程暂存区的行数,清零超过此限的旧命令历程.
# 纯数值
smtpd_history_flush_threshold = 100
# 列出postfix应该接受但没有动作的smtp命令,对这些命令,postfix总是响应
# “250 Ok”
# 逐项列出
smtpd_nooop_commands = vrfy, expn
# 对于每封邮件,客户端可以在RCPT TO命令指定多少个收件地址,超过此值,postfix
# 将拒绝RCPT TO命令.
# 纯数值
smtpd_recipient_limit = 1000
# 列出管理员自己定义的所有规范等级.
# 自定义规范等级的名称
smtpd_restriction_classes = myruleset_a,myruleset_b
myruleset_a = reject_invalid_hostname,reject_unknown_sender_domain
myruleset_b = permit
# 客户端在发生多少此错误后,postfix才开始出现延迟”1″秒的操作.
# 纯数值
smtpd_soft_error_limit = 10
# 将错误码由5xx改成4xx.
# yes/no
soft_bounce = no
# 决定postfix是否应该严格遵守RFC的规范,只接受标头全部时7-bit ASCII字符的
# 邮件, 默认时,postfix接受标头含有8-bit文字的邮件.
# yes/no
strict_7bit_headers = no
# 决定postfix应该接受还是拒绝含有8-bits文字,但是却没编码成适当的MIME格式
# 的邮件.
strict_8bitmime_body = no
# 根据 RFC 821规定,信封地址必须放在一对尖括号之内,不能由多余信息.
# 此参数决定postfix是否要求客户端严格遵守.
# yes/no
strict_rfc821_envelopes = no
# UUCP使用”!”字符指定邮件定制传送路径,此参数决定postfix是否应该将”!”换成
# “@”符号.
# yes/no
swap_bangpath = yes
# postfix在邮件日志里自称的进程.
# 字符串
syslog_name = postfix
# 每隔多久,postfix重新尝试传递先前未能顺利送出的邮件.
# 计时单位
transport_retry_time = 60s
# 当标头里的To:,Resent-To:,Cc:等字段后都没有收件人地址时,应该放在这些
# 字段后的字符串.
# 字符串
undisclosed_recipients_header = To:undisclosed-recipients:;
# 由于reject_unknown_client而拒绝客户端时的响应码.
# 响应码
unknown_client_reject_code = 450
# 当客户端试图寄信给不存在的本地域用户时,postfix用于拒绝客户端的smtpd
# 响应码.
# 响应码
unknown_local_recipient_reject_code = 550
# 客户端试图寄信给不存在域的虚拟域别名时,返回的响应码.
# 响应码
unknown_virtual_alias_reject_code = 550
# VERP是提供退信的技术,此参数列出”列表拥有者地址”和”原收件人地址”的分割符.
# 字符
verp_delimiter_filter = -=+
# “虚拟别名地址”与”实际收件地址”对应的查询表.
# 查询表
virtual_alias_maps = hash:/etc/postfix/virtual_alias
# 虚拟邮箱文件的相对路径起点,所有的虚拟邮箱文件都放在此目录下.
# 目录
virtual_mailbox_base = /usr/local/vmail
# 虚拟邮箱文件的容量大小上限.对于maildir格式的邮箱,此蚕食只能限制每个
# 文件的(只含一封邮件)的大小,而非整体邮箱的大小.
# 此值不得低于message_size_limit.
# 字节
virtual_mailbox_limit = 51200000
# 此参数指向含有”虚拟邮箱地址”与”邮箱文件”对应关系的查询表.
# 邮箱文件的路径,以virtual_mailbox_base所指的路径为起点.
# 查询表
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox
# 用于投递邮件到虚拟邮箱地址的默认传输服务.
# 传输服务
virtual_transport = virtual
—————————

 

自由转载,转载请注明: 转载自WEB开发笔记 www.chhua.com

本文链接地址: postfix配置文件参数 http://www.chhua.com/web-note4931

相关笔记

更多