Postfix
Postfix
postfix介绍
postfix是一个邮件代理服务器,可以自己给其他用户发邮件,也可以做中继转发,和mailman作为邮件列表不一样哈, 来自wiki的来自官方的解释: attempts to be fast, easy to administer, and secure, while at the same time being sendmail compatible \ enough to not upset existing users. Thus, the outside has a sendmail-ish flavor, but the inside is completely different.
配置
出站邮件中使用什么域名
是myorigin变量,默认是$myhostname, 最好改成$mydomain /etc/main.cf myorigin = $myhostname # mail from will be xxx@liuliancao myorigin = $mydomain # maill from will be xxx@liuliancao.com
接受哪些域名的邮件
mydestination变量描述我能够发给谁,可以指定一个或者多个 空格隔开 eg1: mydestination = $myhostname localhost.$mydomain localhost $mydomain eg2: mydestination = $myhostname localhost.$mydomain localhost $mydomain www.$mydomain ftp.$mydomain
中继哪些客户端的邮件
eg1: mynetworks_style = subnet / mynetworks_style = host # 选择host方式标记还是网段方式标记 eg2: mynetworks = 127.0.0.0/8 (safe: authorize local machine only) eg3: mynetworks = 127.0.0.0/8 YOUR_IP/32 (authorize local machine) eg4: mynetworks = 127.0.0.0/8, YOUR_IP, 192.168.0.0/16 (authorize local and other )
中继邮件到哪些目的地
relay_domains配置定义中继的域名,默认使用的是mydestination为允许目的地 relay_domains = $mydestination (default) relay_domains = (safe, never forward mail from strangers) relay_domains = $mydomain(forward mail to my domain and my subdomain)
这里建议加上常用的qq.com, 163.com等等
投递方式
relayhost = (default: direct delivery to Internet) # 默认是直接通过互联网发 relayhost = $mydomain # 通过本地的mail服务发 relayhost = [xxx.xxx.xx] # []表示关闭dns MX记录查询
邮件postmaster告知到谁
通过配置/etc/aliases postmaster: you@liuliancao.com root: you@liuliancao.com 配置完以后,有些邮件可能是不需要的,可以根据notify_classes控制 默认的配置是 notify_classes = resource, software 常见的class类型
- bounce(反弹)
无法投递后返回给发件人一个无法投递邮件的副本 通知到bounce_notice_recipient, default: postmaster
- 2bounce
无法返回给发件人的时候,会发给postmaster,做二次反弹, 通知到2bounce_notice_recipient, default: postmaster
- delay
延迟邮件, 默认发给postmaster, 通知到delay_notice_recipient, default: postmaster
- policy
通知邮件管理员由于策略问题拒绝了客户端的请求 error_notice_recipient, default: postmaster
- protocol
通知postmaster协议错误(客户端或者服务端) error_notice_recipient, default: postmaster
- resource
由于资源问题(队列写入文件错误),通知postmaster error_notice_recipient, default: postmaster
- software
由于软件问题,通知postmaster
日志相关
rsyslog设置/etc/rsyslog.conf, 一般都有 mail.err /dev/console mail.debug /var/log/maillog 如果没有这个文件需要重新创建下,如果希望默认可以加一个-, 类似这样-/var/log/maillog
主机名
myhostname设置 myhostname = host.local.domain(machine name is not FQDN) myhostname = host.virtual.domain(virtual interface) myhostname = virtual.domain(virtual interface)
域名
mydomain设置 domain参数来自myhostname的域名, 默认情况下是对主机名进行截断,也可以指定mydomain, mydomain = local.domain mydomain = virtual.domain
prometheus配置发企业邮
postfix具体配置请参考我的git /var/log/maillog出现报错
|
|
sasl
为了验证哪些client是认证用户,并发给目的地,或者发给服务器自己,通常是通过在同一个网络来决定的,而不同网络可以通过sasl来实现认证,认证完以后就可以有同一个 网络下的权限了,postfix不实现sasl,而是支持配置
|
|
默认是cyrus这种cyrus sasl实现, 可以参考官方稳定cyrus sasl配置, 由于暂时没有需求,先不整了
报错no /etc/alias.db
报错 warning: hash:/etc/aliases is unavailable. open database /etc/aliases.db: No such file or directory 解决 sudo newaliases
如何解决发给自己的报错
Sep 24 09:02:50 liuliancao postfix/smtp[10478]: 531DD44AA3B: to=<liuliancao@liuliancao>,\ relay=smtp.xxx.com[xxxx]:25, delay=0.17, delays=0/0.04/0.12/0.01, dsn=5.0.0, status=bounced \ (host smtp.xxxx.com[xxx] said: 553 authentication is required (in reply to MAIL FROM command)) 发给自己如何不转发
利用postfix给阿里企业邮箱发邮件
在用prometheus发邮件的时候,发现无法发送邮件