linux 操作系统自定义简单的邮件服务
1 按照软件postfix,并配置
[root@wzlvm log]# yum install postfix[root@wzlvm log]# vim /etc/postfix/main.cf myhostname = mail.up17.com -- 定义邮件服务器主机名 mydomain = up17.com -- 定义邮件服务器域名 myorigin = $mydomain -- 设置本机发出的邮件所使用的域名 inet_interfaces = all inet_protocols = ipv4 mynetworks = 192.168.1.0/24, 127.0.0.1/8 -- 设置邮件可以中继的地址段 mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain home_mailbox = Maildir/ -- 邮件存储的地址
配置完成之后重启postfix
service postfix restart
2 配置邮件服务器域名的DNS解析
安装DNS服务
[root@wzlvm log]# yum list|grep '^bind'
[root@wzlvm log]# yum install bind.x86_64 bind-utils.x86_64 bind-devel.x86_64
安装DNS服务器之后进行配置
2.1 配置主配置文件 /etc/named.conf
[root@wzlvm log]# vim /etc/named.confoptions { 11 listen-on port 53 { any; }; -- 花括号里面修改为any 12 listen-on-v6 port 53 { ::1; }; 13 directory "/var/named"; 14 dump-file "/var/named/data/cache_dump.db"; 15 statistics-file "/var/named/data/named_stats.txt"; 16 memstatistics-file "/var/named/data/named_mem_stats.txt"; 17 allow-query { any; }; -- 花括号里面修改为any 18 recursion yes; 19 20 dnssec-enable yes; 21 dnssec-validation yes; 22 23 /* Path to ISC DLV key */ 24 bindkeys-file "/etc/named.iscdlv.key"; 25 26 managed-keys-directory "/var/named/dynamic"; 27 }; 28 29 logging { 30 channel default_debug { 31 file "data/named.run"; 32 severity dynamic; 33 }; 34 }; 35 36 zone "." IN { 37 type hint; 38 file "named.ca"; 39 };
2.2 配置主区域配置文件
[root@wzlvm log]# vim /etc/named.rfc1912.zoneszone "up17.com" IN { type master; file "up17.com"; allow-update { none; };};-- 添加上上面的对邮件服务器域名的配置
2.3 添加区域配置文件
[root@wzlvm log]# vim /var/named/up17.com$TTL 600@ IN SOA ns.up17.com. admin.up17.com. ( 2016101801 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ); minimum up17.com. IN NS ns.up17.com. up17.com. IN MX 10 mail.up17.com. -- 对邮件服务器的配置ns IN A 192.168.125.128 -- DNS服务器的地址mail IN A 192.168.125.128 -- 邮件服务器的地址
2.4 DNS 验证
[root@wzlvm named]# named-checkconf [root@wzlvm named]# named-checkzone 'up17.com' up17.com zone up17.com/IN: loaded serial 2016101801 OK[root@wzlvm named]# dig -t MX mail.up17.com; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t MX mail.up17.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7985;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:;mail.up17.com. IN MX;; AUTHORITY SECTION:up17.com. 600 IN SOA ns.up17.com. admin.up17.com. 2016101801 86400 3600 604800 10800;; Query time: 1 msec;; SERVER: 192.168.125.128#53(192.168.125.128);; WHEN: Tue Oct 18 23:21:29 2016;; MSG SIZE rcvd: 762.5 重启DNS服务器
service named restart
3 设置主机名
这一步是最关键,也是最容易出错的地方,在步骤1里面设置了邮件主机名为mail.up17.com,所以我们的主机名有要设置成mail.up17.com ,否则邮件发不出去。
[root@wzlvm named]# hostname mail.up17.com
4 测试
安装邮件工具软件mutt
yum install mutt
[root@wzlvm named]# mutt q:Quit d:Del u:Undel s:Save m:Mail r:Reply g:Group ?:Help-- 按m 发送邮件
按回车之后进入邮件正文书写界面,输入方式和vim完全一样,输入完成之后保存退出,进入发送界面:
按y 发送
上面接收到邮件。
从上面的接收到的语句可以看出是通过域名mail.up17.com发送的,这中域名在一般的网站都是被当做垃圾邮件或者直接禁止发送的,所以在实验之前到邮件中添加白名单即可。
有可以通过mailx 软件进行静默模式发送:
vim /etc/mail.rc
添加一下几个语句
set bsdcompat
set from=XXXX@163.com set smtp=smtp.163.com set smtp-auth-user=XXXX@163.com set smtp-auth-password=XXXX set smtp-auth=loginecho '邮件内容' | mail -s 主题 XXXX@qq.com
mail -s 主题 xxxx@qq.com < /var/log/mailog 重定向发送