Linux中Postfix邮件发送配置(三)
postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件)
$ service iptables stop
$ chkconfig iptables on
$ setenforce 0
$ hostname mail.ywnds.com
$ echo "127.0.0.1 mail.ywnds.com" >> /etc/hosts
$ yum install bind bind-utils bind-libs
配置DNS
$ cat /etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
recursion yes;
{
zone "ywnds.com" IN {
type master;
file "ywnds.com";
};
#include "/etc/named.root.key";
PS:添加和修改以上内容即可。
$ cat /var/named/ywnds.com
$TTL 1D
@ IN SOA ns.ywnds.com. root.ywnds.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns
ns IN A 192.168.60.10
@ IN MX 10 smtp
smtp IN A 192.168.60.10
pop3 IN A 192.168.60.10
mail IN A 192.168.60.10
$ service named restart
$ chkeconfig named on
postfix主配置文件进行模块化了,其中:
/etc/postfix/main.cf:这个文件保存全局配置信息,所有进程都会用到,除非这些配置在 master.cf 文件中被重新设置了。 /etc/postfix/master.cf:这个文件保存了额外的进程运行时环境参数,在 main.cf 文件中定义的配置可能会被本文件的配置覆盖掉。
在配置文件中所有的参数都必须顶格写不然就会当做是上一行参数的续写。另外postfix大部分配置文件都进行默认化处理了,可以使用postconf -d进行查看。
$cat /etc/postfix/main.cf
inet_protocols = all
inet_interfaces = 192.168.60.10,127.0.0.1
myhostname = mail.ywnds.com
mydomain = ywnds.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
message_size_limit = 20485760
mailbox_size_limit = 5097152000
show_user_unknown_table_name = no
bounce_queue_lifetime = 1d
maximal_queue_lifetime = 1d
home_mailbox = Maildir/
#home_mailbox = Mailbox
#mailbox_command = /some/where/procmail
参数解释:
inet_protocols = all #指定协议。 inet_interfaces = 192.168.60.10,127.0.0.1 #指定postfix系统监听的网络接口。 myhostname = mail.ywnds.com #指定主机名。 mydomain = ywnds.com #指定域名,默认情况下postfix将myhostname的第一部分删除而作为mydomain的值。 myorigin = $mydomain #用来自动补全本域用户,用来指明发件人所在的域名,即做发件地址伪装。 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #这里定义了Postfix接收邮件时的收件人域名,即Postfix要接收哪些域名的邮件,不在此区域内的都算是中继邮件,如果不加$mydomain的话那么就不允许收本域内邮件。 mynetworks = 127.0.0.0/8 #根据网络地址中继,默认给你所在的整个网络中继,postfix系统根据其值来区别用户是远程的还是本地的,这里设置只给本机中继。 message_size_limit = 20485760 mailbox_size_limit = 5097152000 show_user_unknown_table_name = no #邮件大小限制为20M,邮箱大小限制为5G。 bounce_queue_lifetime = 1d maximal_queue_lifetime = 1d #队列超时限制为1天。 home_mailbox = Maildir/ home_mailbox = Mailbox
# 邮箱投递方式有两种:一种是Mailbox方式,即同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下文件名与用户名相同(Postfix默认使用);第二种是Maildir方式,即使用目录结构来存储用户的邮件内容每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。Maildir方式的存取速度和效率要好一些对于管理邮件内容页更加方便。
mailbox_command = /some/where/procmail
#这里可以配置MDA使用procmail方式(postfix默认的投递代理)。
1、在postfix的配置文件中,参数行和注释行是不能处在同一行中的;
2、任何一个参数的值都不需要加引号,否则,引号将会被当作参数值的一部分来使用;
3、每修改参数及其值后执行 postfix reload 即可令其生效;但若修改了inet_interfaces,则需重新启动postfix;
4、如果一个参数的值有多个,可以将它们放在不同的行中,只需要在其后的每个行前多置一个空格即可;postfix会把第一个字符为空格或tab的文本行视为上一行的延续;

SMTP状态码: 1xx:纯信息 2xx:正确 3xx:上一步操作尚未完成,需要继续补充 4xx:暂时性错误 5xx:永久性错误
SMTP协议非常简单,简单到允许任何用户发送邮件同时也允许发送到任何用户。在发件人(MAIL FROM)哪里可以随意指定地址。但是收件人(RCPT TO)可以发给本域内用户也可以通过中继发送给其他域用户。如163或QQ邮箱。但是一般公网邮箱都是需要进行发件人域名反向解析,如果能解析就接收邮件,不能解析就丢失邮件。如果全部解析就有点太苛刻了,也可以针对部分域名进行解析。不信你可以把发件人改为xxx@taobao.com试试你的收件人还能不能收到邮件。(如果输入错误信息可以按Ctrl加退格键即可)
Postfix默认允许本机和本机所在网络的所有主机都允许中继,所以可以发给其他域邮件。但是由于我们上面是用来了指令“mynetworks = 127.0.0.0/8”表示只给本机中继。所以其他主机是无法发送邮件给其他域的,如下图:

注意:127.0.0.1跟192.168.60.10虽然都能访问本机,但它们两的意义不同,127.0.0.1是在本机内部,而192.168.60.10是通过网卡的。另外查看邮件服务器的日志信息在/var/log/maillog
$ useradd -s /sbin/nologin openstack
$ useradd -s /sbin/nologin hadoop
邮件别名可以把发送给一个用户的邮件转给另外一个用户,可以在/etc/aliases文件中可以定义用户别名格式如下:
Openstack: root
表示所有发给Openstack用户的邮件,都发送给root用户。但是Postfix不会使用这个文件因为在文本文件中检索太慢了,所以需要通过hash编码转换为另外一种格式/etc/aliases.db(postfix支持hash格式),而newaliases命令就可以进行它们之间的相互转码的,直接执行命令newaliases即可。
Postfix 维护两个队列:未决邮件队列(pending mails queue)和等待邮件队列(deferred mail queue)。等待队列包含了暂时发送失败、需要重新发送的邮件,Postfix 会定期重发(默认5分钟,可自定义设置)。
其实 Postfix 维护5个队列:
输入队列,邮件进入Postfix系统的第一站; 活动队列,qmgr 将输入队列的邮件移到活动队列; 等待队列,保存暂时不能发送出去的邮件; 故障队列,保存受损或无法解读的邮件; 保留队列,将邮件无限期留在 Postfix 队列系统中; 列出邮件队列 $ postqueue -p
删除所有队列邮件 $ postsuper -d ALL deferred
删除所有邮件 stsuper -d ALL
PS:发送一份邮件一般也可使用tail /var/log/maillog查看邮件队列日志信息,如“status=sent”表示邮件发送成功,而“status=deferred”表示邮件在等待队列。
Linux中Postfix邮件发送配置(三)的更多相关文章
- Linux中Postfix邮件认证配置(五)
Postfix+Dovecot+Sasl工作原理 1.A用户使用MUA客户端借助smtp协议登陆smtpd服务器,需要先进行用户和密码认证,而SMTPD服务器端支持sasl认证,例如有一个sasl客户 ...
- Linux中Postfix邮件安装配置(二)
本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反垃圾邮件等都有详细的介绍.在搭建过程中必须的参数解释以及原理都有告诉,这样才能更好地理解邮件系统. 卸载自带postfix ...
- Linux中Postfix邮件WebMail配置(七)
Extmail Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail.Extman两个部分的程序套件.ExtMail套件用于提供从 ...
- Linux中Postfix邮件接收配置(四)
Dovecot介绍 MRA邮件取回代理也有很多如courier-imap,cyrus-imap和dovecot这三个个工具,下面重点介绍Dovecot: 1.高安全性.据 Dovecot 的作者声称, ...
- Linux中Postfix邮件原理介绍(一)
邮件相关协议 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议, 工作在TCP的25端口.它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式 ...
- Linux中postfix邮件服务器的搭建
postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在 ...
- Linux中的邮件发送
这里写出两种常用的邮件发送方式: mail: 需要安装sendmail和postfix两个服务 编辑/etc/mail.rc,在最后添加 set from=scottcho@126.com smtp= ...
- Linux中Postfix邮件安装Maildrop(八)
Postfix使用maildrop投递邮件 Maildrop是本地邮件投递代理(MDA), 支持过滤(/etc/maildroprc).投递和磁盘限额(Quota)功能. Maildrop是一个使用C ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
随机推荐
- yii---解决post请求出现500错误
在使用yii框架的时候,在发送数据请求的时候,POST请求会出现500错误,这是因为yii2开启了防御csrf的攻击机制,可去先去掉,在控制器里去掉:public $enableCsrfValidat ...
- Linux at 定时任务
命令格式:at[参数][时间] 请注意系统时间是UTC 命令功能:在一个指定的时间执行一个指定任务,只能执行一次.假如该时间已过去,那么就放在第二天执行. /var/spool/mail/这里是任务 ...
- eclipse配置Js环境spket
网上下载spket-1.6.16.jar破解版(目前最新版本) 1.如果你的JDK在1.6以上,可以直接双击spket-1.6.16.jar运行安装. 其它,使用命令行方式.(注意:自己切换命令行到s ...
- TOP100summit:【分享实录】链家网大数据平台体系构建历程
本篇文章内容来自2016年TOP100summit 链家网大数据部资深研发架构师李小龙的案例分享. 编辑:Cynthia 李小龙:链家网大数据部资深研发架构师,负责大数据工具平台化相关的工作.专注于数 ...
- opengl学习笔记(二):使用OpenCV来创建OpenGL窗口
通常的增强现实应用需要支持OpenGL的OpenCV来对真实场景进行渲染.从2.4.2版本开始,OpenCV在可视化窗口中支持OpenGL.这意味着在OpenCV中可轻松渲染任何3D内容. 若要在Op ...
- Linux的/etc/services文件的作用?
4)端口分配 Linux系统的端口号的范围为0–65535,不同范围有不同的意义. 0 不使用 1--1023 系统保留,只能由root用户使用 1024---4999 由客户端程序自由分配 5000 ...
- iOS-CoreLocation地理编码(转载)
一.简单说明 CLGeocoder:地理编码器,其中Geo是地理的英文单词Geography的简写. 1.使用CLGeocoder可以完成“地理编码”和“反地理编码” 地理编码:根据给定的地名,获得具 ...
- ZB api
本文介绍ZB api Rest API (已开启) ZB为用户提供了一个简单的而又强大的API,旨在帮助用户快速高效的将ZB交易功能整合到自己应用当中. 如果在使用过程中有任何问题,请加群764113 ...
- 2018/03/14 每日一个Linux命令 之 ln
ln 链接命令 -- 类似Windows的快捷方式,实际等于建立了一个文件同步的链接,我想,MAC上面复制一个文件到另一个路径,特别快,它可能就是建立了一个链接. -- 在通俗点讲,就是你创建链接之后 ...
- 使用 SendARP 获取 MAC 地址(使用SendARP API函数,很多相关文章)
ARP 协议地址解析协议(ARP)是通过解析网路层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议.ARP 最初在 1982 年的 RFC 826 中提出并纳入互联网标准 STD 3 ...