浅析邮件服务

邮件服务主要由两部分构成,一部分是发邮件,另一部分是收邮件。

发邮件用的协议是SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议。所用的服务软件是postfix,发送邮件是不需要身份验证的

收邮件指的是远程收邮件,例如用QQMAIL接受服务器里的邮件 需要身份验证,用的协议有POP3,IMAP,这两个写以可提供身份验证的功能,

而搭载这两个协议用的服务是dovecot。

########邮件系统(postfix)l######

需要两台主机,在同一网段(可以ping通)
这里的两台是(westos.westos.com linux.;inux.com)
#####1.配置DNS使得两台主机能够通过名字找到对方####
#yum install bind -y
#vim /etc/named.conf ##开启所有端口
#vim /etc/named.rfc1912.zones ##添加这两个域名
#vim /var/named/linux.com.zone
+ $TTL 1D
+ @ IN SOA dns.linux.com. root.linux.com. (
+ 0 ; serial
+ 1D ; refresh
+ 1H ; retry
+ 1W ; expire
+ 3H ) ; minimum
+ NS dns.linux.com.
+ dns A 172.25.254.113
+ linux.com. MX 1 172.25.254.213. ##邮箱的存放
#vim /var/named/westos.com.zone
+ $TTL 1D
+ @ IN SOA dns.westos.com. root.westos.com. (
+ 0 ; serial
+ 1D ; refresh
+ 1H ; retry
+ 1W ; expire
+ 3H ) ; minimum
+ NS dns.westos.com.
+ dns A 172.25.254.113
+ westos.com. MX 1 172.25.254.113.
#vim /etc/resolv.conf ##修改DNS服务器
#dig -t mx linux.com ##测试


#####2.修改postfix的配置文件使得能互发邮件###
systemctl status postfix.service ##查看邮件服务
1.vim /etc/postfix/main.cf ##修改配置文件
> 76 myhostname = linux.linux.com ##配置主机名
> 83 mydomain = linux.com ##配置域名
> 99 myorigin = $mydomain ##配置给别人发时用的名字
> 113 inet_interfaces = all ##打开所有接口
> 116 #inet_interfaces = localhost ##与上者对应
> 164 mydestination = $myhostname, $mydomain, localhost ##配置收什么样的邮件(什么样的属于自己的)
2.systemctl restart postfix.service
3.mail root@linux.com ##发送邮件,'.'表示结束
4.mailq ##查看邮件队列(未发出的)
6.postqueue -f ##刷新邮箱队列(重发队列里的邮件)
7.cat /var/log/maillog ##查看邮件日志
8.postsuper -d ****** ##删除队列李的邮件后面时ID
#####3.别名发送和群发######
->邮件转移
1.vim /etc/aliases ##编辑该文件(类似于邮件转移将前面发给后面)
+ admin:   root ##将发给admin的给root
+ more:    :include:/etc/postfix/users ##将给more的给后面文件的用户(文件里每行一个用户)
+ root:    student ##将发给root的邮件发给student
+ root:    root@mr.com ##将发给root的邮件发给root@mr.com
+ root:    :include:/etc/postfix/users ##将发给root的邮件发文件的用户
+ admin:   root@mr.com ##将发给admin的给root@mr.com
2.postalias /etc/aliases ##加密aliases(重载)


->接受伪装(linux.com可以接受发给mr@qq.com,@163.com的邮件)(别人向这里发送时需要更改DNS)
1.vim /etc/postfix/virtual ##编辑以更换@后面的
+ mr@qq.com          root@linux.com ##当发送给前面时自动换乘后面的
+ @163.com           @linux.com ##同上
2.postmap /etc/postfix/virtual ##加密处理
3.postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual" ##读取加密文件


->发送伪装(用上面两者的身份发送)
1.vim /etc/postfix/generic
+ root@linux.com          mr@qq.com
+ @linux.com              @qq.com
2.postmap /etc/postfix/generic
3.postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"


#####4.远程收(dovecot)发(postfix)邮件#####
->发邮件(postfix服务)
测试(用其他同网段的电脑):
1.yum install telnet -y ##安装telnet服务
2.telnet 172.25.254.213 25 ##测试25端口
-  mail from:admin@qq.com
-  rcpt to:student@163.com 
-  data
-  quit


->收邮件(dovecot服务)
1.yum install dovecot -y
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
3.vim /etc/dovecot/conf.d/10-mail.conf ##子配置文件
> 30 mail_location = mbox:~/mail:INBOX=/var/mail/%u
4.systemctl start dovecot
5.touch ~/mail/.imap/INBOX ##用student(普通用户)建立
->拓展
6.touch /etc/skel/mail/.imap/INBOX ##新建的用户会自动建立skel下的目录到自己的家目录
测试(用其他同网段的电脑):
1.yum install mutt -y
2.mutt -f pop://student@172.25.254.213


3.可以使用客户端雷鸟


#######5.建立虚拟用户处理邮件########
1.yum install mariadb-server httpd php php-mysql -y
  mysql -uroot -p
  create user postfix@localhost identified by 'postfix'; ##创建用户
  grant insert,select on email.* to postfix@localhost; ##授权
  配置图形数据库建立一个数据库email,表maildb,和字段(username,password,domain,maildir(/redhat.com/mr/)),并插入一条数据
2.建立一个数据库用户postfix,密码postfix,权限仅对email有INSERT和SELECT
3.vim /etc/postfix/mysql-users.cf ##建立查询用户名,mysql脚本
+ hosts = localhost ##指定主机
+ user = postfix ##指定用户
+ password = postfix ##指定密码
+ dbname = email ##指定数据库
+ table = maildb ##指定表名
+ select_field = username ##查询username
+ where_field = username ##条件

4.vim /etc/postfix/mysql-domain.cf ##建立查询域名
+ hosts = localhost
+ user = postfix
+ password = postfix
+ dbname = email
+ table = maildb
+ select_field = domain
+ where_field = domain

5.vim /etc/postfix/mysql-mailbox.cf ##建立查询邮件目录
+ hosts = localhost
+ user = postfix
+ password = postfix
+ dbname = email
+ table = maildb
+ select_field = maildir
+ where_field = username

6.postmap -q "mr@redhat.com" mysql:/etc/postfix/mysql-mailbox.cf ##测试邮件目录查询 
7.postmap -q "mr@redhat.com" mysql:/etc/postfix/mysql-users.cf ##测试用户名查询
8.postmap -q "redhat.com" mysql:/etc/postfix/mysql-domain.cf ##测试主机名查询
9.groupadd -g 888 vmail
10.useradd -u 888 -g 888 vmail
(11.)postconf -e "virtual_gid_maps = static:888" ##可以通过命令实现
11.vim /etc/postfix/main.cf ##也可以通过编写配置文件
+ virtual_mailbox_base = /home/vmail
+ virtual_gid_maps = static:888
+ virtual_uid_maps = static:888
+ virtual_alias_maps = mysql:/etc/postfix/mysql-users.cf
+ virtual_mailbox_maps = mysql:/etc/postfix/mysql-mailbox.cf
+ virtual_mailbox_domains = mysql:/etc/postfix/mysql-domain.cf
12.systemctl restart postfix.service




#######6.建立虚拟用户收邮件#########
1.yum install dovecot-mysql.x86_64 -y
2.vim /etc/dovecot/dovecot.conf
> 48 login_trusted_networks = 0.0.0.0/0 #允许访问网络地址
+ 49 disable_plaintext_auth = no #开始明文认证
3.vim /etc/dovecot/conf.d/10-auth.conf
> 123 !include auth-sql.conf.ext ##开启数据库数据认证
4.cp /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext  /etc/dovecot/dovecot-sql.conf.ext
5.vim /etc/dovecot/dovecot-sql.conf.ext
> 32 driver = mysql ##选择数据库类型
> 78 default_pass_scheme = PLAIN ##明文加密
> 71 connect = host=localhost dbname=email user=postfix password=postfix ##登陆数据库
> 107 password_query = \ ##用密码认证   数据库里面找用户名 域名和密码
  108   SELECT username, domain, password \
  109   FROM mailsql WHERE username = '%u' AND domain = '%d'
> 125 user_query = SELECT maildir, 888 AS uid, 888 AS gid FROM mailsql WHERE username = '%u'
6.vim /etc/dovecot/conf.d/10-mail.conf
> 30 mail_location = maildir:/home/vmail/%d/%n ##邮件目录
7.setsebool -P mysql_connect_any on ##打开selinux服务的允许
测试(另一台主机):
telnet 172.25.254.213 110 ##利用telnet测试110端口
Trying 172.25.254.213...
Connected to 172.25.254.213.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user admin@redhat.com
+OK
pass 123
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.


最后打开雷鸟或QQmail登录测试







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值