#################postfix###################
1.postfix提供smtp协议用来投递邮件
默认端口 25
默认发布目录 /var/log/maillog ##服务日志
mail root @..... 发邮件
主题:
内容....
.
mailq ###查看邮件队列
postqueue -f ###重新处理邮件队列
默认情况下邮件端口只在127.0.0.1上开启
2.
配置
vim /etc/postfix/main.cf
76 myhostname = westos-mail.westos.com ###25端口开启的网络借口
83 mydomain = westos.com ###指定mta的域名
99 myorigin = westos.com ###制定邮件来源结尾(@后面的字符内容)
116 inet_interfaces = all ###25端口开启的网络借口
164 mydestination = $myhostname, $mydomain, localhost ###接受邮件字符的指定
systemctl restart postfix.service
systemctl stop firewalld
3.邮件别名
[[email protected] named]# vim /etc/aliases
97 admin: root ##邮件别名
98 moreuser: :include:/etc/postfix/moreuser ##邮件群发
[[email protected] ~]# vim /etc/postfix/moreuser
user1
user2
[[email protected] ~]# systemctl restart postfix.service
mail -u 用户名
postsuper -d 删除排队邮件
postqueue -f 重新发送排队的邮件
postalias /etc/aliases
4.通过远程主机发送邮件
[[email protected] Desktop]$ yum install -y telnet
[[email protected] Desktop]# telnet 172.25.254.101 25
Trying 172.25.254.101...
Connected to 172.25.254.101.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
ehlo hello
250-westos-mail.westos.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
qwdq
qwdeq
qeq
.
测试
[[email protected] ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new 2 unread
U 1 root Tue May 23 09:45 25/739 "qq"
>N 2 [email protected] Tue May 23 09:53 15/494
& 2
Message 2:
From [email protected] Tue May 23 09:53:48 2017
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Status: R
qwdq
qwdeq
qeq
5.邮件客户端的访问控制
在mta上
postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"
[email protected] named]# vim /etc/postfix/main.cf
681 smtpd_client_restrictions = check_client_access hash:/etc/postfix/acce ss
[email protected] named]# vim /etc/postfix/access
476 172.25.254.95 REJECT
[[email protected] named]# postmap /etc/postfix/access
[[email protected] named]# ls
data named.ca named.localhost qq.com.zone westos.com.zone
dynamic named.empty named.loopback slaves
[[email protected] named]# cd /etc/postfix
[[email protected] postfix]# ls
access canonical header_checks master.cf transport
access.db generic main.cf relocated virtual
测试
[[email protected] Desktop]# telnet 172.25.254.195 25
Trying 172.25.254.195...
Connected to 172.25.254.195.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 <unknown[172.25.254.95]>: Client host rejected: Access denied
##限制用户发送
[[email protected] postfix]# postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"
[[email protected] postfix]# vim /etc/postfix/main.cf
681 smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender
[[email protected] postfix]# vim /etc/postfix/sender
[email protected] REJECT
[[email protected] postfix]# postmap /etc/postfix/sender
[[email protected] postfix]# ls
access canonical header_checks master.cf sender transport
access.db generic main.cf relocated sender.db virtual
[[email protected] postfix]# systemctl restart postfix.service
测试
[[email protected] Desktop]# telnet 172.25.254.101 25
Trying 172.25.254.101...
Connected to 172.25.254.101.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 <[email protected]>: Sender address rejected: Access denied
##限制用户接收
[[email protected] postfix]# postconf -e "smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip"
[[email protected] postfix]# vim /etc/postfix/main.cf
smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip
[[email protected] postfix]# vim /etc/postfix/recip
[email protected] REJECT
[[email protected] postfix]# postmap /etc/postfix/recip
[[email protected] postfix]# systemctl restart postfix.service
测试
[[email protected] Desktop]# telnet 172.25.254.101 25
Trying 172.25.254.101...
Connected to 172.25.254.101.
Escape character is ‘^]‘.
220 westos-mail.westos.com ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
554 5.7.1 <[email protected]>: Recipient address rejected: Access denied
#出站地址伪装
做好dns解析
[[email protected] named]# postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"
[[email protected] named]# vim /etc/postfix/main.cf
smtp_generic_maps = hash:/etc/postfix/generic
[[email protected] named]# vim /etc/postfix/generic
[email protected] [email protected]
[[email protected] named]# postmap /etc/postfix/generic
[[email protected] named]# cd /etc/postfix/
[[email protected] postfix]# ls
access canonical generic.db main.cf recip relocated sender.db virtual
access.db generic header_checks master.cf recip.db sender transport
[[email protected] postfix]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)
测试
From [email protected] Tue May 23 11:55:08 2017
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Tue, 23 May 2017 11:55:08 -0400
To: [email protected]
Subject: qdq
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected]
Status: R
##入站地址转换
做好dns解析
[[email protected] postfix]# postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
[[email protected] postfix]# vim /etc/postfix/virtual
295 [email protected] [email protected]
[[email protected] postfix]# vim /etc/postfix/main.cf
virtual_alias_maps = hash:/etc/postfix/virtual
[[email protected] postfix]# postmap /etc/postfix/virtual
[[email protected] postfix]# systemctl restart postfix.service
[[email protected] postfix]# mail [email protected]
Subject: qwdq
qwdq
dq
wdq
.
EOT
测试
[[email protected] postfix]# mail -u westos
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/westos": 1 message 1 new
>N 1 root Tue May 23 12:10 20/560 "qwdq"
& 1
Message 1:
From [email protected] Tue May 23 12:10:01 2017
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Tue, 23 May 2017 12:10:00 -0400
To: [email protected]
Subject: qwdq
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R
######################################
###########dovecot####################
1.dovecot用来提供收件协议
pop3 110
imap 143
imaps 993
pop3s 995
给定用户名称,用户密码,dovecot程序代替我们去看这个用户的邮件文件
2.yum intsall -y dovecot
3.
[[email protected] named]# vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp
48 login_trusted_networks = 0.0.0.0/0
49 disable_plaintext_auth = no
[[email protected] named]# vim /etc/dovecot/conf.d/10-mail.conf
30 mail_location = mbox:~/mail:INBOX=/var/mail/%u
[[email protected] ~]# su westos
[[email protected] root]$ cd ~
[[email protected] ~]$ mkdir /home/westos/mail/.imap -p
[[email protected] ~]$ touch /home/westos/mail/.imap/INBOX
[[email protected] westos]# passwd westos
Changing password for user westos.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] westos]# systemctl restart dovecot.service
[[email protected] ~]# mkdir /etc/skel/mail/.imap -p
[[email protected] ~]# touch /etc/skel/mail/.imap/INBOX
[[email protected] ~]# useradd zhang
[[email protected] ~]# passwd zhang
Changing password for user zhang.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[[email protected] ~]# systemctl restart dovecot.service
测试
主机安装mutt
[[email protected] Desktop]# mutt -f pop://[email protected]
安装雷鸟
用真机
rpm -ivh thunderbird-31.2.0-1.el7.x86_64.rpm
接下来进行以下操作
进去之后进行登陆并且给[email protected]恢复邮件
测试
[[email protected] ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 2 messages 1 new
1 root Tue May 23 11:22 21/572 "qwew"
>N 2 [email protected] Wed May 24 11:52 32/940 "Re:123"
& 2
Message 2:
From [email protected] Wed May 24 11:52:52 2017
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Date: Wed, 24 May 2017 23:52:52 +0800
From: "[email protected]" <[email protected]>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/
31.2.0
To: root <[email protected]>
Subject: Re:123
Content-Type: text/plain; charset=UTF-8; format=flowed
Status: R
################postfix+mariadb##############
[[email protected] ~]# yum install -y httpd php php-mysql mariadb-server
[[email protected] ~]# systemctl start mariadb
[[email protected] ~]# vim /etc/my.cnf
[[email protected] ~]# systemctl restart postfix.service
[[email protected] ~]# systemctl restart mariadb.service
[[email protected] ~]# mysql_secure_installation
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
phpMyAdmin-3.4.0-all-languages.tar.bz2
[[email protected] html]# tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
[[email protected] html]# rm -fr *.bz2
[[email protected] html]# ls
phpMyAdmin-3.4.0-all-languages
[[email protected] html]# mv phpMyAdmin-3.4.0-all-languages/ myadmin
[[email protected] html]# ls
myadmin
[[email protected] html]# cd myadmin
[[email protected] myadmin]# cp config.sample.inc.php config.inc.php
[[email protected] myadmin]# vim config.inc.php
[[email protected] myadmin]# systemctl restart httpd
[[email protected] myadmin]# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 32
Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> create user [email protected] identified by ‘postuser‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant select,update,insert on email.* to [email protected];
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye
[[email protected] myadmin]# mysql -upostuser -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 33
Server version: 5.5.35-MariaDB MariaDB Server
Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> select * from email.emailuser;
+-------------+----------+---------+-------------------+
| username | password | domain | maildir |
+-------------+----------+---------+-------------------+
| [email protected] | lee | lee.com | /mnt/lee.com/lee/ |
+-------------+----------+---------+-------------------+
[[email protected] ~]# cd /etc/postfix/
[[email protected] postfix]# vim mailuser.cf ####用户名查询
1 hosts = localhost ##数据库所在的主机
2 user = postuser ##登陆数据库的用户
3 password = postuser ##登陆数据库的密码
4 dbname = email ##postfix要查询的名称
5 table = emailuser ##postfix要查询表的名称
6 select_field = username ##postfix要查询的字段
7 where_field = username ##用户给定postfix的查询条件
[[email protected] postfix]# postmap -q "[email protected]" mysql:/etc/postfix/mailuser.cf
[email protected]
[[email protected] postfix]# vim maildomain.cf ####用户域名查询
1 hosts = localhost
2 user = postuser
3 password = postuser
4 dbname = email
5 table = emailuser
6 select_field = domain
7 where_field = domain
[[email protected] postfix]# postmap -q "lee.com" mysql:/etc/postfix/maildomain.cf
lee.com
[[email protected] postfix]# vim mailbox.cf ####用户邮箱位置查询
1 hosts = localhost
2 user = postuser
3 password = postuser
4 dbname = email
5 table = emailuser
6 select_field = maildir
7 where_field = username
[[email protected] postfix]# postmap -q "[email protected]" mysql:/etc/postfix/mailbox.cf
/mnt/lee.com/lee/
####配置postfix
[[email protected] ~]# groupadd -g 666 vmail
[[email protected] ~]# id vmail
uid=666(vmail) gid=666(vmail) groups=666(vmail)
[[email protected] ~]# postconf -d | grep virtual
[[email protected] ~]# postconf -e "virtual_mailbox_base = /home/vmail"
[[email protected] ~]# postconf -e "virtual_uid_maps = static:666"
[[email protected] ~]# postconf -e "virtual_gid_maps = static:666"
[[email protected] ~]# postconf -e "virtual_alias_maps = mysql:/etc/postfix/mailuser.cf"
[[email protected] ~]# postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mailbox.cf"
[[email protected] ~]# postconf -e "virtual_mailbox_domain = mysql:/etc/postfi/maildomain.cf"
systemctl restart postfix.service
测试
给[email protected]的邮件在/home/vmail/lee.com/new/里面可以找到