postfix

   

#################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.邮件别名

[root@westos-mail named]# vim /etc/aliases

    97 admin:          root                          ##邮件别名

    98 moreuser:       :include:/etc/postfix/moreuser    ##邮件群发

 

[root@qq-mail ~]# vim /etc/postfix/moreuser

   user1

   user2

[root@qq-mail ~]# systemctl restart postfix.service

mail -u 用户名

postsuper -d  删除排队邮件

postqueue -f  重新发送排队的邮件

postalias /etc/aliases

 

 

 

4.通过远程主机发送邮件

[kiosk@foundation75 Desktop]$ yum install -y telnet

[root@foundation75 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:root@westos.com

250 2.1.0 Ok

rcpt to:root@qq.com

250 2.1.5 Ok

data

354 End data with <CR><LF>.<CR><LF>

qwdq

qwdeq

qeq

.

测试

[root@qq-mail ~]# 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 root@westos.com       Tue May 23 09:53  15/494   

& 2

Message  2:

From root@westos.com  Tue May 23 09:53:48 2017

Return-Path: <root@westos.com>

X-Original-To: root@qq.com

Delivered-To: root@qq.com

Status: R

 

qwdq

qwdeq

qeq

 

5.邮件客户端的访问控制

在mta上

postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"

root@westos-mail named]# vim /etc/postfix/main.cf

 681 smtpd_client_restrictions = check_client_access hash:/etc/postfix/acce    ss

root@westos-mail named]# vim /etc/postfix/access

  476 172.25.254.95 REJECT

[root@westos-mail named]# postmap /etc/postfix/access

[root@westos-mail named]# ls

data     named.ca     named.localhost  qq.com.zone  westos.com.zone

dynamic  named.empty  named.loopback   slaves

[root@westos-mail named]# cd /etc/postfix

[root@westos-mail postfix]# ls

access     canonical  header_checks  master.cf  transport

access.db  generic    main.cf        relocated  virtual

测试

[root@test 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:root@westos.com           

250 2.1.0 Ok

rcpt to:root@qq.com

554 5.7.1 <unkNown[172.25.254.95]>: Client host rejected: Access denied

##限制用户发送

[root@westos-mail postfix]# postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"

[root@westos-mail postfix]# vim /etc/postfix/main.cf

  681 smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender

[root@westos-mail postfix]# vim /etc/postfix/sender

   student@westos.com    REJECT

[root@westos-mail postfix]# postmap /etc/postfix/sender

[root@westos-mail postfix]# ls

access     canonical  header_checks  master.cf  sender     transport

access.db  generic    main.cf        relocated  sender.db  virtual

[root@westos-mail postfix]# systemctl restart postfix.service

测试

[root@foundation75 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:student@westos.com

250 2.1.0 Ok

rcpt to:root@westos.com

554 5.7.1 <student@westos.com>: Sender address rejected: Access denied

##限制用户接收

[root@westos-mail postfix]# postconf -e "smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip"

[root@westos-mail postfix]# vim /etc/postfix/main.cf

  smtpd_sender_restrictions = check_recipient_access hash:/etc/postfix/recip

[root@westos-mail postfix]# vim /etc/postfix/recip

  westos@westos.com    REJECT

[root@westos-mail postfix]# postmap /etc/postfix/recip

[root@westos-mail postfix]# systemctl restart postfix.service

测试

[root@foundation75 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:root@qq.com

250 2.1.0 Ok

rcpt to:westos@westos.com

554 5.7.1 <westos@westos.com>: Recipient address rejected: Access denied

#出站地址伪装

做好dns解析

[root@westos-mail named]#  postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"

[root@westos-mail named]# vim /etc/postfix/main.cf

  smtp_generic_maps = hash:/etc/postfix/generic

[root@westos-mail named]#  vim /etc/postfix/generic

  westos@westos.com           hello@sb.com

[root@westos-mail named]# postmap /etc/postfix/generic

[root@westos-mail named]# cd /etc/postfix/

[root@westos-mail postfix]# ls

access     canonical  generic.db     main.cf    recip     relocated  sender.db  virtual

access.db  generic    header_checks  master.cf  recip.db  sender     transport

[root@westos-mail postfix]# id westos

uid=1001(westos) gid=1001(westos) groups=1001(westos)

测试

From hello@sb.com  Tue May 23 11:55:08 2017

Return-Path: <hello@sb.com>

X-Original-To: root@qq.com

Delivered-To: root@qq.com

Date: Tue, 23 May 2017 11:55:08 -0400

To: root@qq.com

Subject: qdq

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: hello@sb.com

Status: R

##入站地址转换

做好dns解析

[root@westos-mail postfix]# postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"

[root@westos-mail postfix]# vim /etc/postfix/virtual

   295 hello@sb.com         westos@westos.com

[root@westos-mail postfix]# vim /etc/postfix/main.cf

  virtual_alias_maps = hash:/etc/postfix/virtual

[root@westos-mail postfix]# postmap /etc/postfix/virtual

[root@westos-mail postfix]# systemctl restart postfix.service

[root@westos-mail postfix]# mail hello@sb.com

Subject: qwdq

qwdq

dq

wdq

.

EOT

测试

[root@westos-mail 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 root@westos.com  Tue May 23 12:10:01 2017

Return-Path: <root@westos.com>

X-Original-To: hello@sb.com

Delivered-To: westos@westos.com

Date: Tue, 23 May 2017 12:10:00 -0400

To: hello@sb.com

Subject: qwdq

User-Agent: Heirloom mailx 12.5 7/5/10

Content-Type: text/plain; charset=us-ascii

From: root@westos.com (root)

Status: R

######################################

###########dovecot####################

1.dovecot用来提供收件协议

pop3            110

imap            143

imaps           993    

pop3s           995

给定用户名称,用户密码,dovecot程序代替我们去看这个用户邮件文件

 

2.yum intsall -y dovecot

3.

[root@westos-mail 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

 

[root@westos-mail named]# vim /etc/dovecot/conf.d/10-mail.conf

   30 mail_location = mBox:~/mail:INBox=/var/mail/%u

[root@westos-mail ~]# su westos

[westos@westos-mail root]$ cd ~

[westos@westos-mail ~]$ mkdir /home/westos/mail/.imap -p

[westos@westos-mail ~]$ touch /home/westos/mail/.imap/INBox

[root@westos-mail 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.

[root@westos-mail westos]# systemctl restart dovecot.service

[root@westos-mail ~]# mkdir /etc/skel/mail/.imap -p

[root@westos-mail ~]# touch /etc/skel/mail/.imap/INBox

[root@westos-mail ~]# useradd zhang

[root@westos-mail ~]# 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.

[root@westos-mail ~]# systemctl restart dovecot.service

测试

主机安装mutt

[root@foundation75 Desktop]# mutt -f pop://zhang@172.25.254.101

安装雷鸟

用真机

rpm -ivh thunderbird-31.2.0-1.el7.x86_64.rpm

接下来进行以下操作

 

postfix

 

进去之后进行登陆并且给westos@westom.com恢复邮件

测试

[root@westos-mail ~]# 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 westos@westos.com     Wed May 24 11:52  32/940   "Re:123"

& 2

Message  2:

From westos@westos.com  Wed May 24 11:52:52 2017

Return-Path: <westos@westos.com>

X-Original-To: root@westos.com

Delivered-To: root@westos.com

Date: Wed, 24 May 2017 23:52:52 +0800

From: "westos@westos.com" <westos@westos.com>

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/

31.2.0

To: root <root@westos.com>

Subject: Re:123

Content-Type: text/plain; charset=UTF-8; format=flowed

Status: R

 

 

################postfix+mariadb##############

 

[root@westos-mail ~]# yum install -y httpd PHP PHP-mysql mariadb-server

[root@westos-mail ~]# systemctl start mariadb

[root@westos-mail ~]# vim /etc/my.cnf

[root@westos-mail ~]# systemctl restart postfix.service

[root@westos-mail ~]# systemctl restart mariadb.service

[root@westos-mail ~]# MysqL_secure_installation

[root@westos-mail ~]# cd /var/www/html

[root@westos-mail html]# ls

PHPMyAdmin-3.4.0-all-languages.tar.bz2

[root@westos-mail html]# tar jxf PHPMyAdmin-3.4.0-all-languages.tar.bz2

[root@westos-mail html]# rm -fr *.bz2

[root@westos-mail html]# ls

PHPMyAdmin-3.4.0-all-languages

[root@westos-mail html]# mv PHPMyAdmin-3.4.0-all-languages/ myadmin

[root@westos-mail html]# ls

myadmin

[root@westos-mail html]# cd myadmin

[root@westos-mail myadmin]# cp config.sample.inc.PHP  config.inc.PHP

[root@westos-mail myadmin]# vim config.inc.PHP

[root@westos-mail myadmin]# systemctl restart httpd

[root@westos-mail 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 postuser@localhost identified by 'postuser';

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> grant select,update,insert on email.* to postuser@localhost;

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> quit

Bye

[root@westos-mail 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           |

+-------------+----------+---------+-------------------+

| lee@lee.com | lee      | lee.com | /mnt/lee.com/lee/ |

+-------------+----------+---------+-------------------+

[root@westos-mail ~]# cd /etc/postfix/

[root@westos-mail 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的查询条件

[root@westos-mail postfix]#  postmap -q "lee@lee.com" MysqL:/etc/postfix/mailuser.cf

lee@lee.com

[root@westos-mail 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

[root@westos-mail postfix]#  postmap -q "lee.com" MysqL:/etc/postfix/maildomain.cf

lee.com

[root@westos-mail 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

 

[root@westos-mail postfix]#  postmap -q "lee@lee.com" MysqL:/etc/postfix/mailBox.cf

/mnt/lee.com/lee/

 附图

postfix


postfix

postfix

postfix

postfix


####配置postfix

[root@westos-mail ~]# groupadd -g 666 vmail

[root@westos-mail ~]# id vmail

uid=666(vmail) gid=666(vmail) groups=666(vmail)

[root@westos-mail ~]# postconf -d | grep virtual

[root@westos-mail ~]# postconf -e "virtual_mailBox_base = /home/vmail"

[root@westos-mail ~]# postconf -e "virtual_uid_maps = static:666"

[root@westos-mail ~]# postconf -e "virtual_gid_maps = static:666"

[root@westos-mail ~]# postconf -e "virtual_alias_maps = MysqL:/etc/postfix/mailuser.cf"

[root@westos-mail ~]# postconf -e "virtual_mailBox_maps = MysqL:/etc/postfix/mailBox.cf"

[root@westos-mail ~]# postconf -e "virtual_mailBox_domain = MysqL:/etc/postfi/maildomain.cf"

systemctl restart postfix.service

测试

给lee@lee.com的邮件在/home/vmail/lee.com/new/里面可以找到

附图

postfix

postfix

相关文章

这篇文章主要介绍“hive和mysql的区别是什么”,在日常操作中...
这篇“MySQL数据库如何改名”文章的知识点大部分人都不太理解...
这篇文章主要介绍“mysql版本查询命令是什么”的相关知识,小...
本篇内容介绍了“mysql怎么修改字段的内容”的有关知识,在实...
这篇文章主要讲解了“mysql怎么删除unique约束”,文中的讲解...
今天小编给大家分享一下mysql怎么查询不为空的字段的相关知识...