1.配置所需软件
postfix ##邮件服务软件
httpd ##网络共享软件
php ##超文本解析
mysql ##数据库
dovecot ##IMAP 和 POP3 邮件服务器
2.配置postfix
1)首先配置好要使用的dns地址解析。
2)配置postfix主配置文件
[root@maillinux Desktop]# vim /etc/postfix/main.cf ##postfix主配置文件
...
76 myhostname = mail.yang.com
...
83 mydomain = yang.com
...
99 myorigin = $mydomain
...
113 inet_interfaces = all
114 #inet_interfaces = $myhostname
115 #inet_interfaces = $myhostname, localhost
116 #inet_interfaces = localhost
...
119 inet_protocols = all
...
164 mydestination = $myhostname, $mydomain, localhost
...
[root@maillinux Desktop]# systemctl restart postfix.service
测试
[root@maillinux Desktop]# mail root@westos.com
Subject: AAA
123
.
EOT
[root@maillinux Desktop]# mailq #邮件队列
Mail queue is empty
3)本地群发
[root@mailwestos Desktop]# vim /etc/postfix/user
student
root
[root@mailwestos Desktop]# vim /etc/aliases
...
98 more: :include:/etc/postfix/user
...
[root@mailwestos Desktop]# postalias /etc/aliases
[root@mailwestos Desktop]# systemctl restart postfix.service
测试:
[root@mailwestos ~]# mail more
Subject: asd
sad
.
EOT
[root@mailwestos ~]# mailq
Mail queue is empty
4)域名转换
[root@mailwestos Desktop]# vim /etc/postfix/virtual
295 @qq.com @westos.com
296 admin@qq.com root@westos.com
[root@mailwestos Desktop]# postmap /etc/postfix/virtual
[root@mailwestos Desktop]# postconf -d | grep virtual
virtual_alias_maps = $virtual_maps
[root@mailwestos Desktop]# postconf -e “virtual_alias_maps = hash:/etc/postfix/virtual”
[root@maillinux Desktop]# systemctl restart postfix.service
测试:
[root@mailwestos Desktop]# mail admin@qq.com
Subject: SSS
AAA
.
EOT
[root@mailwestos Desktop]# mailq
Mail queue is empty
[root@mailwestos Desktop]# mail
Message 10:
From root@westos.com Tue Mar 14 08:01:47 2017
Return-Path: <root@westos.com>
X-Original-To: **admin@qq.com**
Delivered-To: root@westos.com
Date: Tue, 14 Mar 2017 08:01:47 -0400
To: admin@qq.com
Subject: SSS
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@westos.com (root)
5)域名伪装
[root@mailwestosroot@mailwestos named]# vim /etc/postfix/generic
241 root@westos.com admin@qq.com
[root@mailwestos named]# postmap /etc/postfix/generic
[root@mailwestos named]# postconf -d | grep generic
smtp_generic_maps =
[root@mailwestos named]# postconf -e “smtp_generic_maps = hash:/etc/postfix/generic”
[root@mailwestos named]# systemctl restart postfix.service
测试
[root@mailwestos named]# mail root@linux.com
Subject: AAA
www
.
EOT
[root@mailwestos named]# mailq
Mail queue is empty
[root@maillinux Desktop]# mail
...
Message 2:
From admin@qq.com Tue Mar 14 08:33:03 2017
Return-Path: <**admin@qq.com**>
X-Original-To: root@linux.com
Delivered-To: root@linux.com
Date: Tue, 14 Mar 2017 08:33:03 -0400
To: root@linux.com
Subject: AAA
...
7)postfix+mysql
vim /etc/postfix/mysql-user.cf
hosts = localhost
user = yang
password = yang
dbname = email
table = mailusers
select_field = username
where_field = username
vim /etc/postfix/mysql-domain.cf
hosts = localhost
user = yang
password = yang
dbname = email
table = mailusers
select_field = domain
where_field = domain
vim /etc/postfix/mysql-maildir.cf
hosts = localhost
user = yang
password = yang
dbname = email
table = mailusers
select_field = maildir
where_field = username
测试
[root@server ~]# postmap -q “westos.com” mysql://etc/postfix/mysql-domain.cf
westos.com
[root@server ~]# postmap -q “yang@westos.com” mysql://etc/postfix/mysql-user.cf
yang@westos.com
[root@server ~]# postmap -q “yang@westos.com” mysql://etc/postfix/mysql-maildir.cf
/westos.com/yang/
3.dovecot服务
1)配置dovecot
vim /etc/dovecot/dovecot.conf
...
24 protocols = imap pop3 lmtp
...
48 login_trusted_networks = 0.0.0.0/0
49 disable_plaintext_auth = no
...
vim /etc/dovecot/conf.d/10-auth.conf
...
122 !include auth-system.conf.ext
123 !include auth-sql.conf.ext
...
# %u - username
# %n - user part in user@domain, same as %u if there's no domain
# %d - domain part in user@domain, empty if there's no domain
# %h - home directory
vim /etc/dovecot/conf.d/10-mail.conf
...
30 mail_location = maildir:/home/vmail/%d/%n
...
vim /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext
vim /etc/dovecot/dovecot-sql.conf.ext
...
32 driver = mysql
...
71 connect = host=localhost dbname=email user=yang password=yang
...
78 default_pass_scheme = PLAIN
...
107 password_query = \
108
109 SELECT username, domain, password \
110 FROM mailusers WHERE username = '%u' AND domain = '%d'
...
126 user_query = SELECT maildir, 888 AS uid, 888 AS gid FROM mailusers WHERE use rname = '%u'
...
[root@server vmail]# groupadd -g 888 vmail
[root@server vmail]# useradd -g 888 -u 888 vmail
[root@server vmail]# postconf -e “virtual_mailbox_base = /home/vmail”
[root@server vmail]# postconf -e “virtual_alias_maps = mysql:/etc/postfix/mysql-user.cf”
[root@server vmail]# postconf -e “virtual_mailbox_domains = mysql:/etc/postfix/mysql-domain.cf”
[root@server vmail]# postconf -e “virtual_mailbox_maps = mysql:/etc/postfix/mysql-maildir.cf”
[root@server vmail]# postconf -e “virtual_uid_maps = static:888”
[root@server vmail]# postconf -e “virtual_gid_maps = static:888”
2)测试
telnet
[kiosk@yang Desktop]$ telnet 172.25.254.10 110
Trying 172.25.254.10...
Connected to 172.25.254.10.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user yang@westos.com
+OK
pass aaa
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.
最后可以通过邮件软件完成收发邮件