Linux学习 邮件
邮件
一、先做DNS解析
(1)第一台主机
1.hostnamectl set-hostname westos.mail.com
systemctl stop firewalld
配置ip为172.25.254.109
yum install bind -y ##下载解析服务器
systemctl start named ##开启解析服务
2.vim /etc/named.conf
注释掉11、12、17行
32行:dnssec-validation no;
:wq
vim /etc/named.rfc1912.zones
zone"westos.com" IN {
type master;
file "westos.com.zone"; ##域名westos.com的解析文件为westos.com.zone
allow-update { none; };
};
zone"qq.com" IN {
type master;
file "qq.com.zone"; ##域名qq.com的解析文件为qq.com.zone
allow-update { none; };
};
3.cd /var/named
cp -p named.localhost westos.com.zone
vim westos.com.zone
cp -p westos.com.zone qq.com.zone
vim qq.com.zone
4.systemctl restart named
5.vim /etc/resolv.conf
编辑内容:nameserver 172.25.254.109
6.可以使用dig命令进行检测:dig -t mx westos.com
dig -t mx qq.com
(2)另外一台主机
1.systemctl stop firewalld
配置IP为172.25.254.209
systemctl start network
hostnamectl set-hostname qq.mail.com
2.vim /etc/resolv.conf
编辑:nameserver 172.25.254.109
二、postfix
(1)postfix提供smtp协议用来投递邮件,其默认端口为25
netstat -antlpe | grep master ##查看25端口
(2)修改配置文件
第一台主机--westos.mail.com
1.vim /etc/postfix/main.cf
76myhostname = westos-mail.westos.com ##Postfix服务邮件主机的主机名
83mydomain = westos.com ##域名为westos.com,Postifx会自动删除名称第一部分,将剩余部分作为域名
99myorigin = $mydomain ##发送的邮件结尾是westos.com
116inet_interfaces = all ##开放端口
164mydestination = $myhostname, $mydomain, localhost,westos.com ##以这些内容结尾的邮件该主机接收
2.systemctl restart postfix ##重启服务
第二台主机--qq.mail.com
1.vim /etc/postfix/main.cf
76myhostname = qq-mail.qq.com ##主机名
83mydomain = qq.com ##域名为qq.com
99myorigin = $mydomain ##发送的邮件结尾是qq.com
116inet_interfaces = all ##开放所有的网络接口
164mydestination = $myhostname, $mydomain, localhost,qq.com ##以这些内容结尾的邮件该主机接收
2.systemctl restart postfix ##重启服务
(3)测试
第一台主机端--westos.mail.com
1.mail root@qq.com ##发送邮件给域名为qq.com的主机
Subject: ##输入主机
##写内容
. ##发送
postsuper -d ##删除邮件队列
2.mailq ##查看邮件队列,查看是否成功发送
postqueue -f ##重新处理邮件队列
postsuper -d 队列ID ##删除队列中和指定邮件
接受端使用命令mail查看是收到邮件
三、用户别名
1.vim /etc/aliases
在最后编辑内容如下:
别名: 用户
如: admin: root
2.postalias /etc/aliases ##使文件生效
3.测试:在另一台主机可使用命令如下
mail 别名@qq.com
在接受端使用命令mail查看
四、邮件群发
在qq.com主机端做如下1、2、3操作
1.vim /etc/aliases
在最后编辑内容如下:
别名: :include:filename ##文件中的用户均使用这一别名
如: moreuser: :include:/etc/postfix/fmorefile ##以绝对路径来指定路径
2.vim /etc/postfix/morefile ##编辑群发的用户
用户名
student
root
:wq
3.postalias /etc/aliases ##使文件生效
4.测试
在westos.com主机端使用如下命令测试:
mail moreuser@qq.com
在qq.com主机端使用如下命令查看:
mail ##查看root用户是否收到邮件
mail -u 用户名 ##查看该用户是否收到邮件
mail -u student ##查看student用户是否收到邮件
五、邮件客户端的访问控制
<1>在未限制客户端的访问控制前,其客户端访问效果如下:
1.yum install telnet -y
2.telnet 172.25.254.109 25 ##远程访问
Trying172.25.254.109...
Connectedto 172.25.254.109.
Escapecharacter is '^]'.
220westos.mail.com ESMTP Postfix ##登录信息
mailfrom:root@westos.com ##root用户从westos.com域发送邮件
2502.1.0 Ok
rcptto :root@qq.com ##发送邮件至qq.com域的root
2502.1.5 Ok
data ##开始输入邮件内容
354End data with <CR><LF>.<CR><LF>
文件内容
. ##发送邮件
2502.0.0 Ok: queued as 74B8AEAC27 ##发送成功
quit ##结束远程访问
在域名为qq.com的主机使用mail命令查看是否接收到邮件
<2>限制客户端
(1)在客户端(主机ip--172.25.254.90)
yum install telnet -y
(2)在mta上,使用以下命令,即可限制客户端(举例选择在westos.com主机进行实验)
1.postconf -d | grep client ##查看访问限制命令
postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"
###限制hash加密的/etc/postfix/access文件中的客户端访问
2.vim /etc/postfix/access ###编辑限制客户端名单
格式: IP REJECT
如:172.25.254.90 REJECT ###限制172.25.254.90这台主机访问,注意编辑时不能多加空格
3.postmap /etc/postfix/access ##对文件加密生成加密文件access.db,为mta提供限制名单
4.systemctl restart postfix ##重启postfix
5.配置正确时,会在/etc/postfix/main.cf文件自动生成命令,显示如下:
(3)客户端测试:
telnet 172.25.254.109 25 ##远程访问westos.com主机
Trying 172.25.254.109...
Connected to 172.25.254.109.
Escape character is '^]'.
220 westos.mail.com ESMTP Postfix ##登录信息
mail from:root@westos.com ##root用户从westos.com域发送邮件
250 2.1.0 Ok
rcpt to :root@qq.com ##发送邮件至qq.com域的root
554 5.7.1 <unknown[172.25.254.9]>:Client host rejected: Access denied
##172.25.254.90用户被拒绝
<3>限制用户发送
1.postconf -d | grep sender ##查看限制方式
postconf -e "smtpd_sender_restrictions =check_sender_access hash:/etc/postfix/sender"
###发送邮件时检测/etc/postfix/sender经hash加密生成的文件中的内容
2.vim /etc/postfix/sender
编辑格式:
用户名@域名 REJECT
如:student@westos.comREJECT
:wq
3.postmap /etc/postfix/sender ##对文件加密,postfix协议读加密文件/etc/postfix/sender.db
4.systemctl restart postfix
5.vim /etc/postfix/main.cf
6.客户端测试
[root@foundation9 ~]# telnet 172.25.254.10925
Trying 172.25.254.109...
Connected to 172.25.254.109.
Escape character is '^]'.
220 westos.mail.com ESMTP Postfix
mail from:student@westos.com
250 2.1.0 Ok
rcpt to:root@qq.com
554 5.7.1 <student@westos.com>:Sender address rejected: Access denied ##student用户拒绝发送
注:以上命令中使用以下命令来查看邮件执行的操作程序??
postconf -d | grep client ##客户端程序??
postconf -d | grep sender ##
<4>限制用户接收
在域名主机端新建用户westos:useradd westos
未限制用户接收前,其可以接收文件
如下图示意:
如下操作进行限制用户接收:
1.postconf -d | grep recipient
postconf -e "smtpd_recipient_restrictions =check_recipient_access hash:/etc/postfix/名称"
##接收邮件时检测经hash加密生成的/etc/postfix/recip.db文件
如:postconf -e "smtpd_recipient_restrictions = check_recipient_accesshash:/etc/postfix/recip"
2.vim /etc/postfix/recip
westos@westos.com REJECT
:wq
3.postmap /etc/postfix/recip ##使文件内容生效
4.systemctl restart postfix
5.测试
在客户端:
[kiosk@foundation90 Desktop]$ telnet172.25.254.109 25
Trying 172.25.254.109...
Connected to 172.25.254.109.
Escape character is '^]'.
220 westos.mail.com ESMTP Postfix
mail from:root@westos.com ##通过westos.com主机的root用户发送
250 2.1.0 Ok
rcpt to:westos@westos.com ##westos.com主机的westos用户接收
554 5.7.1 <westos@westos.com>:Recipient address rejected: Access denied ##westos用户拒绝接收
<5>地址伪装:邮件的发送用户名不是真实的用户名
(1)出站地址伪装:发送邮件时将发送端用户名转换成别名即以伪装身份发送邮件。
1.postconf -d | grep generic
postconf -e "smtp_generic_maps = hash:/etc/postfix/名称"
如:postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"
2.vim /etc/postfix/generic
用户名@域名 别名@另一域名
如:westos.westos.com out@site.com
##westos用户在上述过程<4>中已经建立,将出站身份伪装成out,域名伪装成site.com,但解析时该域名应与westos.com为同一解析域
:wq
3.postmap /etc/postfix.generic
4.systemctl restart postfix
5,测试
在westos.com主机端:
[root@westos postfix]# su - westos #切换至westos用户
Last login: Sun May 21 10:06:28 EDT 2017 onpts/1
[westos@westos ~]$ mail root@qq.com ##给qq.com主机的root用户发送邮件
Subject: out ##主题
site ##内容
. ##发送邮件
EOT
[westos@westos ~]$ mailq ##查看邮件队列,即是否发送成功
Mail queue is empty
在qq.com端:
[root@qq-mail home]# mail ##查看接收的邮件
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 6messages 1 new 2 unread
1root Sun May 21 08:02 22/723 "hello"
2root Sun May 2108:07 22/731 "hello"
U 3root Sun May 2108:48 25/855 "that's"
4root@westos.com Sun May 2108:56 14/493
5westos@westos.com Sun May 2110:36 12/318
>N 6 out@site.com Sun May 2110:45 21/690 "out"
& 6 ##输入6,读取第六封邮件
Message 6:
From out@site.com Sun May 21 10:45:00 2017
Return-Path: <out@site.com> ##显示:邮件来自于site.com主机的out用户
X-Original-To: root@qq.com
Delivered-To: root@qq.com
Date: Sun, 21 May 2017 10:45:00 -0400
To: root@qq.com
Subject: out
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: out@site.com
Status: R
Site
&
(2)入站地址转换
未作地址转换前,由qq.com主机给site.com主机的out用户回邮件,过程及结果显示如下:
[root@qq-mail home]# mail out@site.com ##给site.com主机的out用户发送邮件
Subject: return
xxx
. ##发送邮件
EOT
[root@qq-mail home]# mailq ##查看邮件队列,是否发送成功,结果显示失败
-Queue ID- --Size-- ----Arrival Time-----Sender/Recipient-------
DB14B246242 410 Sun May 21 11:04:33 root@qq.com
(Host or domain name not found. Nameservice error for name=site.com type=MX: Host not found, try again) ##未找到域名site.com的解析地址,因此无法发送邮件给site.com主机
out@site.com
-- 0 Kbytes in 1 Request.
因此地址伪装除了编辑出站地址的别名外,还要对伪装后的域名做地址解析及邮件别名设置
(A)域名site.com解析
1.vim /etc/named.rfc1912
编辑内容如下:
zone"site.com" IN { ##域名解析实现
type master;
file "site.com.zone";
##解析文件是site.com.zone
allow-update { none; };
};
:wq
2.cd /var/named
cp -p westos.com.zone site.com.zone
vim site.com.zone
编辑后内容显示如下:
$TTL1D
@ IN SOA dns.site.comroot.site.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS dns.site.com.
dns A 172.25.254.109
site.com. MX1 172.25.254.109.
##site.com域名的解析地址需与westos.com域名的解析地址相同,实现入站地址转换
3.systemctl restart named
可以使用命令查看dig -tmx site.com是否解析成功
(B)westos.com主机上进行邮件别名设置(out---westos)
1.postconf -d | grep alias
postconf -e "virtual_alias_maps = hash:/etc/postfix/名称"
如:postconf -e"virtual_alias_maps = hash:/etc/postfix/virtual"
2.vim /etc/postfix/virtual
编辑:out@site.com westos@westos.com
:wq
3.postmap /etc/postfix/virtual ##使文件生效
4.systemctl restart postfix
5.测试
从qq.com主机给site.com的out用户发送文件,实际发送给westos.com主机的westos用户
查看westos.com主机的westos用户是否收到来自qq.com主机的邮件,内容如下:
[root@westos ~]# mail -u westos ##查看westos用户接收的邮件
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/westos": 2 messages 1new
1root@qq.com Sun May 2110:10 15/504
>N 2 root Sun May 2112:00 21/705 "second"
& 2 ##查看第2封邮件
Message 2:
From root@qq.com Sun May 21 12:00:11 2017
Return-Path: <root@qq.com>
X-Original-To: out@site.com ##源接收地址为site.com主机的out用户
Delivered-To: westos@westos.com ##实际发送至westos.com主机的westos用户
Date: Sun, 21 May 2017 12:00:11 -0400
To: out@site.com
Subject: second
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@qq.com (root)
Status: R
complete
&
六、dovecot--提供收件协议
<1>、接收端认证
1.接收端认证即用户认证与密码认证,使用MDA代理
2.dovecot服务为MDA代理提供如下协议,作用:用户通过认证后,引导用户读取该用户的邮件
提供的协议 端口号
pop3 110
pop3s 995
imap 143
imaps 993
注:(1)netstat -antlpe | grep 服务名 ##查看某服务的端口号
(2)cat /etc/services | grep 服务名 ##查看某服务的端口号
cat /etc/services | grep bind
(3)/etc/skel ##系统骨架目录
/etc/shells
<2>、MDA代理端配置
1.yum install dovecto -y
systemctl start dovecot
netstat -antlpe | grep dovecot ##查看dovecto的端口号
2.编辑主配置文件:指定所使用的协议
vim /etc/dovecot/dovecto.conf
使24、48、49行生效,其内容显示如下:
24protocols = imap pop3 lmtp ##dovecot使用的协议,其中lmtp是加密协议
48login_trusted_networks = 0.0.0.0/0 ##允许所有网络
49 disable_plaintext_auth = no ##允许明文认证
3.编辑子配置文件:指定哪些用户可以访问,并在通过验证后引导用户去该用户的邮箱查看该用户的邮件
vim /etc/dovecot/conf.d/10-mail.conf
其中部分内容如下:
17# %u - username ##%u表示主机名
18 # %n - user part in user@domain, same as %u if there's no domain ##%n表示用户名
19 # %d - domain part in user@domain, empty if there's no domain ##%d表示域名
20 # %h - home directory ##%h表示家目录
###解释说明%u、%n、%d、%h各代表什么
24# mail_location = maildir:~/Maildir
25 # mail_location = mbox:~/mail:INBOX=/var/mail/%u
26 # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
##指定邮箱位置
需要编辑的内容如下:
30mail_location = mbox:~/mail:INBOX=/var/mail/%u
##邮件存放在用户家目录中的/mail/.imap/INBOX,用户家目录即/home/用户名;INBOX=/var/mail/%u,因为可能有多个用户,所以不直接指定具体地址
:wq
4.systemctl restart dovecot
5.新建用户,并设置用户密码--在某域的主机
如:useradd westos ##在westos.com的主机上建立
echo 密码 | grep 用户名 ##给用户设置密码
6.建立该用户的邮件存放位置--/home/用户名/mail/.imap/INBOX文件
su - westos
mkidr /home/westos/mail/.imap
touch /home/westos/mai/.imap/INBOX
##其中,INBOX=/var/mail/%u.不能直接指定为/var/mail/westos,因为不安全,可能会看到其他用户的邮件
<3>客户端
1.rpm -qa | grep mutt ##是否安装mutt服务
yum install mutt -y ##安装服务
2.mutt -f pop://用户名@IP
##使用pop协议去搜索IP中的指定用户的邮箱
其中IP为用户所在的主机IP,即某解析域所在的主机IP;
也可以使用imap协议搜索
如:mutt -f pop://westos@172.25.254.109
##使用pop协议去搜索westos.com域所在的主机中该用户的邮箱
##输入y,回车
##reject,accept:输入r表示拒绝认证
##once:输入o表示认证并不记录
##accept alwqys:认证并记录
本次实验输入o,回车
提示输入密码
已进入邮箱,选中某个邮件,回车即可读取内容
读取成功,按q退出
<4>域名所在主机中用户的邮箱地址的创建,可以自动完成,命令如下:
在域名主机的root用户下操作
1.mkdir /etc/skel/mail/.imap -p ##/etc/skel 系统的骨架目录
2.touch /etc/skel/mail/.imap/INBOX
3.useradd 用户名 -p 密码 ##创建用户后,即可自动完成用户的邮箱文件的创建
七、客户端收发邮件
1.客户端安装雷鸟软件
rpm -ivh thunderbird-31.2.0-1.el7.x86_64.rpm
###需要从网页下载与系统版本匹配的安装包,再进行安装
2.打开雷鸟软件,可以使用命令:thunderbird
3.具体实现过程见如下:
选择skip
编辑用户名及邮件地址,此用户必须有INBOX,continue
修改信息,更改后内容如图示:选择pop3协--110端口;用户名为westos;再Re-test
选择“冒险”
客户端即可登录邮箱,对邮箱第一次操作时需输入密码
输入密码读邮箱中的邮件
读取邮件
发送邮件,点击Send
点击Email,即可登录新邮箱
八、邮件与数据库的结合:Postfix+mariadb+dovecot
(一)postfix+mariadb ---邮件的发送
<一>、数据库的创建
<1>数据库的网页管理工具
1.yum intstall php php-mysal httpd mariadb-server -y
systemctl start httpd
systemctl stop firewalld
systemctl start mariadb
2.vim /etc/my.cnf
编辑内容: skip-networking=1 ##关闭网络接口
:wq
systemctl restart mariadb ##重启数据库服务
mysql_secure_installation ##进行初始化
3.从网页下载与主机匹配的phpMyAdmin安装包
如本机下载:phpMyAdmin-3.4.0-all-languages.tar.bz2
cd /var/www/html ##网页下载至该目录中
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 ##解压
mv phpMyAdmin-3.4.0-all-languages/ myadmin
##重新命名为myadmin(可任意命名)
cd myadmin
cp config.sample.inc.php config.inc.php ##生成配置文件
vim config.inc.php
编辑第17行,其''中不能为空
:wq
原内容如下:
根据提示信息:必须在’’中填写信息,如下示:
4.systemctl restart httpd
5.网页访问172.25.254.100/myadmin进行数据库管理
访问数据库
新建数据库email
在email数据库中新建emailuser数据表,字段为4,具体实现见下图
插入数据:username--bai@bai.com
password--bai
domain--bai.com ##该域名一定与Postfix主机真实的域不同
maildir--/mnt/bai.com/bai/ ##用户邮件存放家目录
<2>交互式管理数据库
1.myspl -uroot -pwestos
2.具体实现过程如图示意:
<二>、用户创建及授权--登录数据库的用户
1.mysal -uroot -pwestos
2.create user 用户名@localhost identified by '密码';
##建立用户并给定密码,此用户只能通过本机登录
如:MariaDB[(none)]> create user postuser@localhost identified by 'postuser';
###新建用户postuser并设置密码为postuser,该用户只能通过本机登录
3.用户授权
MariaDB [(none)]> grant select, update, insert on email.* to postuser;
###postuser对email库中的所有数据有select(读取)、update(更新)、insert(写数据)的功能,即可以在邮箱中可以读邮件、更改邮箱密码、注册
注:用户不能删除邮箱帐号,所以不能给用户授权delete
<三>、邮件与数据库的结合
<1>vim /etc/postfix/mailuser.cf
编辑 76 myhostname =westos-mail.qq.com ##主机名
83 mydomain = westos.com ##域名为qq.com
99 myorigin = $mydomain ##发送的邮件结尾是qq.com
116 inet_interfaces = all ##开放所有的网络接口
164 mydestination = $myhostname,$mydomain, localhost, ##以这些内容结尾的邮件该主机接收
<2>.编辑postfix与数据库的连接文件
1.vim /etc/postfix/mailuser.cf ##编辑postfix与数据库的连接文件
hosts = localhost ##数据库所在主机
user = postuser ##登录数据库的用户
password = postuser ##登录数据库的密码
dbname = email ##postfix要查询的库名称
table = emailuser ##postfix要查询的表名称
select_field = username ##postfix要查询的字段
where field = username ##用户给定postfix的查询条件
:wq
##
postmap -q "bai@bai.com" mysql:/etc/postfix/mailuser.cf
2.vim /etc/postfix/maildomain.cf ##用户域名查询
hosts = localhost ##数据库所在主机
user = postuser ##登录数据库的用户
password = postuser ##登录数据库的密码
dbname = email ##postfix要查询的库名称
table = emailuser ##postfix要查询的表名称
select_field = domain ##postfix要查询的字段
where field = domain ##用户给定postfix的查询条件
:wq
postmap -q "bai.com" mysql:/etc/postfix/maildomain.cf
3.vim /etc/postfix/mailbox.cf ##用户域名查询
hosts = localhost ##数据库所在主机
user = postuser ##登录数据库的用户
password = postuser ##登录数据库的密码
dbname = email ##postfix要查询的库名称
table = emailuser ##postfix要查询的表名称
select_field = maildir ##postfix要查询的字段
where field = username ##用户给定postfix的查询条件
:wq
postmap -q "bai@bai.com" mysql:/etc/postfix/mailbox.cf
<四>
groupadd -g 666 vmail ##创建目录,虚拟用户访问目录
useradd -s /sbin/nologin -u 666 vmail -g 666 ##创建虚拟用户
<五>potfix配置--邮件的发送
1.postconf -d | grep virtual
postconf -e "virtual_mailbox_base =/home/vmail/"
##设定虚拟用户的邮件目录
postconf -e "virtual_uid_maps =static:666"
##虚拟用户建立文件的uid
postconf -e "virtual_gid_maps =static:666"
##虚拟用户建立文件的gid
postconf -e "virtual_alias_maps =mysql:/etc/postfix/mailuser.cf"
postconf -e "virtual_mailbox_domains =mysql:/etc/postfix/maildomain.cf"
postconf -e "virtual_mailbox_mps =mysql:/etc/postfix/mailbox.cf"
若配置成功,可在/etc/postfix/main.cf最后进行查看是否生成有效命令
2.email.emailuser表格如下示:
注意:maildir字段的信息是:/bai.com/bai
3.systemctl restart postfix ##重启服务
<五>测试
mail bai@bai.com ##给bai.com域的bai 用户发邮件--数据库信息
若发送成功,则/home/vmail会自动产生数据库信息
(二)dovecot+mariadb--邮件接收
<一>安装dovecot,并进行配置
1.yum install dovecot -y
yum install dovecto-mysql -y ##安装dovecto与数据库连接的插件
<二>配置dovecot
1.vim /etc/dovecot/dovecto.conf
编辑内容如下:
24 protocols = imap pop3 lmtp ##支持收件协议
48 login_trusted_networks =0.0.0.0/0 ##允许通过的网络
49 disable_plaintext_auth=no ##开启明文认证
:wq
2.vim /etc/dovecot/conf.d/10-auth.conf
123 !include auth-sql.conf.ext ##使123行生效,表示开启mysql认证方式
3.cp -p cp -p /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext ##生成dovecot读取数据库的配置文件
vim /etc/dovecot/dovecot-sql.conf.ext
编辑内容如下:
32 driver = mysql ##数据库类型
71 connect = host=localhost dbname=email user=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, 666 AS uid, 666 AS gid FROM emailuser WHERE username = '%u'
##从emailuser表中查询邮件内容
##username='%u' 库中的字段信息username
##
:wq
4.vim /etc/dovecot/conf.d/10-mail.conf
编辑内容如下:
30 mail_location = maildir:/home/vmail/%d/%n
##指定邮件位置,其中: %d=domain;%n=username
168 first_valid_uid = 666 ##邮件查询用户身份
175 first_valid_gid = 666
:wq
5.systemctl restart dovecot ##重启服务
<三>测试
1.yum install telnet -y ##在服务端下载测试软件
2.测试
[root@westos ~]# telnet 172.25.254.109 110
Trying 172.25.254.109...
Connected to 172.25.254.109.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user bai@bai.com ##输入用户名
+OK
pass bai ##密码
+OK Logged in. ##显示内容表示通过认证
<三>客户端
1.安装雷鸟服务
2.thunder
登录bai@bai.com用户
九、空壳邮件服务
<1>空壳邮件服务主机不接收邮件,其作用是将邮件转发给邮件服务器,或是真正的域名解析地址所在的主机。
<2>配置空壳邮件服务主机--172.25.254.209
1.hostnamectl set -hostname nullmail.example.com
2.vim /etc/postfix/main.cf
编辑内容如下:
76 myhostname = nullmail.example.com ##主机名
83 mydomain = example.com ##域名
99 myorigin = westos.com ##接收的域名是westos.com的邮件
116 inet_interfaces = all
164 mydestination = ##该主机不再作为解析域
316 relayhost = 172.25.254.109
:wq
<3>测试
1.在空壳邮件服务主机发邮件
mail root ##表示给westos.com的root用户发邮件,因为myorigin=westos.com
2.在westos.com域名的解析主机查看root用户邮件,内容如下示:
[root@westos-mail ~]# mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 4 messages 1 new 3 unread
U 1 Mail Delivery System Sun May 28 09:11 72/2244 "Undelivered Mail Returned to Sende"
U 2 bai@bai.com Sun May 28 09:58 26/868 "Re: you"
3 root Sun May 28 10:23 22/747 "I"
>N 4 root Sun May 28 10:41 21/742 "I"
& 4
Message 4:
From root@westos.com Sun May 28 10:41:10 2017
Return-Path: <root@westos.com>
X-Original-To: root@westos.com
Delivered-To: root@westos.com
Date: Sun, 28 May 2017 10:41:10 -0400
To: root@westos.com
Subject: I
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@westos.com (root)
Status: R
am null
&
可以看出:空壳邮件服务主机并不进行真正的收发邮件,其只是将邮件文件进行转发。
3.在空壳邮件服务主机端,给example.com域的主机发送邮件,查看其接收者是否是example.com主机
mail root@example.com
4.在空壳邮件服务主机端查看,内容显示无邮件
在westos.com域的主机查看是否有来自example.com的邮件
Linux学习 邮件相关推荐
- linux 发邮件给用户,Linux学习之给指定用户发邮件
发送邮件 进入 mail 程序后的操作都很简单,但是可以不进入 mail 的 & 操作提示符界面,下面举几个实用例子: 1.给 snailwarrior@qq.com 发信 [root@pps ...
- 我的Linux成长路---001 Linux学习初期计划
Linux学习初期计划 1.Linux基础 Linux历史.Linux版本.Linux安装.shell命令 2.Linux系统管理 用户管理.文件权限管理.磁盘管理.进程管理.自动化任务.安装程序.. ...
- Linux学习(CentOS-7)---磁盘分区(概念、分区方法、分区方案)
2016-09-23 16:28 13512人阅读 评论(0) 收藏 举报 分类: Linux学习(6) 版权声明:本文为博主原创文章,未经博主允许不得转载. 1磁盘分区相关的概念 1.1什么是磁盘 ...
- Linux学习之CentOS(三十四)--配置域主DNS服务器
在上一篇随笔里 Linux学习之CentOS(三十三)--DNS基础及域名系统架构,讲解了DNS的一些基础知识以及域名系统架构,在本篇随笔里将详细地讲解主DNS服务器的配置... 一.DNS服务器的类 ...
- Linux端日志加密,Linux学习--第十三天--日志、系统运行级别、grub加密
日志 rsyslogd取代了syslogd. /var/log/cron #定时任务相关日志 /var/log/cups #打印信息相关日志 /var/log/dmesg #开机内核自检相关日志,dm ...
- 「干货」什么Linux是邮件服务器?
每天我们都会收到很多的邮件,但是从来没有了解过邮件是怎么实现收发的,也没有自己配置过一台邮件服务器. 今天我们就来认识一下什么是邮件服务器. 常见的邮件服务器软件介绍 Sendmail:sendmai ...
- Linux学习笔记13
Linux学习笔记13 Linux学习笔记13 配置Nagios 基本介绍 Nagios安装 - 服务端 Nagios安装 - 客户端 监控中心添加被监控主机 配置文件的简单说明 继续添加需要服务端通 ...
- linux学习查看日志命令
linux学习查看日志命令 tail -f linux学习日 志 文 件 说 明 /var/log/maillog 与邮件相关的日志信息 /var/log/secure 与安全相关的日志信息 /var ...
- Linux学习总结(68)——Linux 30年专访:Linus Torvalds谈Linux内核开发与Git
三十年前,当Linus Torvalds(林纳斯·托瓦兹,下文统称Linus)首次发布Linux内核时,他还是赫尔辛基大学(University of Helsinki)的一名21岁的学生,他宣布说: ...
最新文章
- 暴风前员工替冯鑫惋惜,是公司的老白兔员工害了他
- [ARM异常]-armv8/armv9同步异常的介绍
- bmw info source
- GitHub + jsDelivr + PicGo 搭建个人图床
- Android用GSon处理Json数据
- 【渝粤教育】广东开放大学 国际金融 形成性考核 (48)
- Opencv透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
- UVA 12101 Prime Path (素数筛+BFS)
- ios多线程之NSThread头文件详解
- SAP License:SAP凭证编号中跳号问题处理
- Tensorflow——Dropout(解决过拟合问题)
- c语言中学生信息管理系统中删除学生信息,学生信息管理系统C语言编程
- JAVA中关于除数为0
- 运行 Clojure 编程实战 5.3 节代码出现 Could not locate Clojure resource on classpath 问题
- 计算机安全模式快捷键,windows7怎么进入安全模式(快捷键进入的方法)
- net中winform教程 浏览器控件,还是微软的WebView2最好用
- MySQL燕十八老师课程笔记:第十六课:MySQL各个函数
- Python安装libsvm
- 4k纸是几厘米乘几厘米_4k纸多大,纸张的大小规格
- linux kworker进程占用cpu,为什么kworker cpu使用率如此之高?