標籤:linux
##########postfix+mariadb#######
發送郵件
準備工作
yum install httpd php php-mysql mariadb-server -y
##配置mysql
config phpmyadmin
config mariadb
mysql_secure_installation
create db
create table
create usermessage
create dbuser
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/97/52/wKiom1ktUU_RTUddAAEJlAkhouI608.png" title="234520170530185409.png" style="float:none;" alt="wKiom1ktUU_RTUddAAEJlAkhouI608.png" />
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/97/53/wKioL1ktUVGwzkvKAAHhyh6parE615.png" title="234520170530185603.png" style="float:none;" alt="wKioL1ktUVGwzkvKAAHhyh6parE615.png" />
##添加資料庫使用者,並給其授權
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/97/52/wKiom1ktUVLzIsPzAAG7HYvbSVU418.png" title="234520170530185659.png" style="float:none;" alt="wKiom1ktUVLzIsPzAAG7HYvbSVU418.png" />
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/97/53/wKioL1ktUVKzIRqqAAGSX3_cAVY627.png" title="234520170530185707.png" style="float:none;" alt="wKioL1ktUVKzIRqqAAGSX3_cAVY627.png" />
1.
vim /etc/postfix/mailuser.cf ##使用者名稱稱查詢
host = localhost ##資料庫所在主機
user = postuser ##登陸資料庫的使用者
password = postuser ##登陸資料庫的使用者密碼
dbname = email ##postfix要查詢的庫的名稱
table = emailtable ##postfix要查詢的表的名稱
select_field = username ##postfix要查詢的欄位
where_field = username ##使用者給定postfix的查詢條件
vim /etc/postfix/maildomain.cf ##使用者網域名稱查詢
host = localhost
user = postuser
password = postuser
dbname = email
table = emailtable
select_field = domain
where_field = domain
vim /etc/postfix/mailbox.cf ##使用者郵箱位置查詢
host = localhost
user = postuser
password = postuser
dbname = email
table = emailtable
select_field = maildir
where_field = username
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/97/53/wKioL1ktUVOiN1oLAAHEdrbwPC8399.png" title="234520170530185735.png" style="float:none;" alt="wKioL1ktUVOiN1oLAAHEdrbwPC8399.png" />
測試:
postmap -q "[email protected]"mysql:/etc/postfix/mailuser.cf
[email protected]
postmap -q "cui.com"mysql:/etc/postfix/maildomain.cf
cui.com
postmap -q "[email protected]"mysql:/etc/postfix/mailbox.cf
/mnt/cui.com/cui/
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M01/97/52/wKiom1ktUVPjLF_-AAErAPceGVQ908.png" style="float:none;" title="234520170530185724.png" alt="wKiom1ktUVPjLF_-AAErAPceGVQ908.png" />
####配置postfix
groupadd -g 123 vmail ##添加使用者組並指定gid為123
useradd -s /sbin/nologin -u 123 vmail -g 123 ##添加使用者,並指定uid和gid為123
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M02/97/52/wKiom1ktUVTzGO9sAAEXyHBo7Iw480.png" title="234520170530185754.png" style="float:none;" alt="wKiom1ktUVTzGO9sAAEXyHBo7Iw480.png" />
postconf -d |grep virtual ##查詢virtual
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/97/52/wKiom1ktUVXiRV0-AANF-EzYu14100.png" style="float:none;" title="234520170530185807.png" alt="wKiom1ktUVXiRV0-AANF-EzYu14100.png" />
postconf -e "virtual_mailbox_base = /home/vmail" ##設定虛擬使用者的郵件目錄
postconf -e "virtual_uid_maps = static:123" ##虛擬使用者建立檔案的uid
postconf -e "virtual_gid_maps = static:123" ##虛擬使用者建立檔案的gid
postconf -e "virtual_alias_maps = mysql:/etc/postfix/mailuser.cf" ##指定mysql尋找主機
postconf -e "virtual_mailbox_domains =mysql:/etc/postfix/maildomain.cf" ##指定mysql尋找網域名稱
postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mailbox.cf" ##指定mysql尋找郵箱
systemctl restart postfix ##重啟postfix服務
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M00/97/54/wKioL1ktVSSx5f8aAAHPbzVXH9A469.png" title="234520170530191844.png" alt="wKioL1ktVSSx5f8aAAHPbzVXH9A469.png" />650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/52/wKiom1ktUVaSU389AAG_42OU_mQ693.png" style="float:none;" title="234520170530185833.png" alt="wKiom1ktUVaSU389AAG_42OU_mQ693.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/97/53/wKioL1ktUVei6EvrAAGDbuSobks940.png" style="float:none;" title="234520170530185843.png" alt="wKioL1ktUVei6EvrAAGDbuSobks940.png" />
##測試:發送給[email protected]的郵件在/home/vmail/cui.com/cui/new/裡找到
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/52/wKiom1ktUVfj75ICAAEWmux_AJk733.png" title="234520170530185857.png" style="float:none;" alt="wKiom1ktUVfj75ICAAEWmux_AJk733.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/53/wKioL1ktUViBu6rTAAIPckmkbVw464.png" title="234520170530185910.png" style="float:none;" alt="wKioL1ktUViBu6rTAAIPckmkbVw464.png" />
############dovecot+mysql############
內送郵件
1.
yum install dovecot dovecot-mysql -y
##dovecot是一個開源的 IMAP 和 POP3 郵件伺服器,支援 Linux,支援發送郵件
##dovecot-mysql dovecot軟體的外掛程式,讓此軟體可以識別mysql
2.
vim /etc/dovecot/dovecot.conf
24 protocols = imap pop3 lmtp ##支援收件協議
48 login_trusted_networks = 0.0.0.0/0 ##信任網路
49 disable_plaintext_auth = no ##開啟明文認證
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/97/53/wKioL1ktUVngXlrzAAB9jBz42iQ302.png" title="234520170530185931.png" style="float:none;" alt="wKioL1ktUVngXlrzAAB9jBz42iQ302.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/97/52/wKiom1ktUVnis1_gAADIcA0QaJM242.png" title="234520170530185937.png" style="float:none;" alt="wKiom1ktUVnis1_gAADIcA0QaJM242.png" />
vim /etc/dovecot/conf.d/10-auth.conf
123 !include auth-sql.conf.ext ##開啟mysql的認證方式
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/97/54/wKioL1ktVgPTX_rdAABrXPNWGBQ083.png" title="234520170530190034.png" style="float:none;" alt="wKioL1ktVgPTX_rdAABrXPNWGBQ083.png" />
##產生dovecot讀取mysql的配置
cp /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext/etc/dovecot/dovecot-sql.conf.ext
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/97/54/wKioL1ktVgTi5szJAAEjsT0MBLo003.png" title="234520170530190101.png" style="float:none;" alt="wKioL1ktVgTi5szJAAEjsT0MBLo003.png" />
vim /etc/dovecot/dovecot-sql.conf.ext
32 driver = mysql ##資料庫類型
71 connect = host=localhost dbname=emailuser=postuser password=postuser ##查詢時用到的庫,使用者,密碼
78 default_pass_scheme = PLAIN ##預設認證方式為明文
107 password_query = \ ##查詢密碼匹配
108 SELECT username, domain, password\
109 FROM emailuser WHERE username =‘%u‘ AND domain = ‘%d‘
125 user_query = SELECT maildir, 123 AS uid, 123 AS gid FROM emailuser WHEREusername = ‘%u‘ ##查詢郵件內容
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/52/wKiom1ktVgOy1SDoAAA14eq4inY632.png" title="234520170530190027.png" style="float:none;" alt="wKiom1ktVgOy1SDoAAA14eq4inY632.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/97/54/wKioL1ktVgPxbGa9AADN_03oPCc983.png" title="234520170530190020.png" style="float:none;" alt="wKioL1ktVgPxbGa9AADN_03oPCc983.png" />
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/97/52/wKiom1ktVgLA_p3MAAC9m-YUyQE779.png" title="234520170530190005.png" style="float:none;" alt="wKiom1ktVgLA_p3MAAC9m-YUyQE779.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/52/wKiom1ktVgLhrBzWAACf8LUJj9k627.png" title="234520170530190012.png" style="float:none;" alt="wKiom1ktVgLhrBzWAACf8LUJj9k627.png" />
vim /etc/dovecot/conf.d/10-mail.conf
30 mail_location =maildir:/home/vmail/%d%n ##指定郵件位置
168 first_valid_uid = 123 ##郵件檔案查詢使用者身份
175 first_valid_gid = 123
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M00/97/53/wKioL1ktUVqjPmNCAABqylOYSUg547.png" title="234520170530185946.png" style="float:none;" alt="wKioL1ktUVqjPmNCAABqylOYSUg547.png" />
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M00/97/54/wKioL1ktVt_zZPtIAAEYINvRvOw873.png" title="234520170530192554.png" alt="wKioL1ktVt_zZPtIAAEYINvRvOw873.png" />
systemctl restart dovecot
測試:
[[email protected] ~]# telnet 172.25.254.150 110
Trying 172.25.254.150...
Connected to 172.25.254.150.
Escape character is ‘^]‘.
+OK [XCLIENT] Dovecot ready.
user [email protected]
+OK
pass cui
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.
[[email protected] ~]#
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/97/52/wKiom1ktUViz_gU2AAEQu8EmpRw688.png" title="234520170530185924.png" style="float:none;" alt="wKiom1ktUViz_gU2AAEQu8EmpRw688.png" />
3.空殼郵件
westos-mail主機為真機
qq-mail主機為空白殼
在qq-mail上執行
vim /etc/postfix/main.cf
myorigin = westos.com ## 設定為真實的主機網域名稱650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/97/52/wKiom1ktVgSz8yK9AABThmiVQLg209.png" title="234520170530190111.png" style="float:none;" alt="wKiom1ktVgSz8yK9AABThmiVQLg209.png" />
mydestination = ##空殼郵件不接受郵件,所以不設定
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/97/52/wKiom1ktVgXy4G5WAAB4IzIvVCY552.png" title="234520170530190117.png" style="float:none;" alt="wKiom1ktVgXy4G5WAAB4IzIvVCY552.png" />
relayhost = 172.25.254.162 ##接替的真實主機的IP
650) this.width=650;" src="https://s1.51cto.com/wyfs02/M01/97/54/wKioL1ktVgXQzIdMAAB_LPgi00s405.png" title="234520170530190123.png" style="float:none;" alt="wKioL1ktVgXQzIdMAAB_LPgi00s405.png" />
##測試:空殼主機給本機root發送郵件但不接收,162主機內送郵件
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M01/97/54/wKioL1ktVgaA-jlEAAGzSKfi8rE529.png" title="234520170530190148.png" style="float:none;" alt="wKioL1ktVgaA-jlEAAGzSKfi8rE529.png" />
650) this.width=650;" src="https://s2.51cto.com/wyfs02/M02/97/52/wKiom1ktVgbiZg56AAHX6GpI-MM597.png" title="234520170530190203.png" style="float:none;" alt="wKiom1ktVgbiZg56AAHX6GpI-MM597.png" />
3-unit4 postfix+mysql