linux 邮件服务器
邮件通信系统协议及概念:
软件角色:
MUA:邮件客户端
MTA:邮件服务端
MDA:邮件服务端模块
邮件客户端:Mail User Agent,邮件用户代理
邮件服务端:Mail Transfer Agent,邮件传输代理
邮件服务端的模块/功能:Mail Delivery Agent,邮件分发代理
发送,投递邮件——Postfix
收取邮件——Dovecot
通信协议及过程:
邮件传递双方的通信规则
SMTP:简单邮件传输协议(TCP25)
POP3:离线取信协议,第三版邮件协议(TCP110)
IMAP4:在线管理信件协议,第四版网际消息访问协议(TCP143)
发件人—SMTP—》MTA—SMTP—》MTA—POP3/IMAP—MUA
常见的邮件服务器软件
Ppostfix
兼容Sendmail,采用模块化设计
在投递效率,稳定性,性能及安全方面均表现出色
Exchange
微软公司产品,方便与windows系列产品集成,协作性好
其他开源MTA软件
Qmail Sendmail
邮件客户端软件
命令行工具
telnet 邮件服务器 端口
mail mutt
图形收发信软件工具
microsoft outlook
Tencent foxmail
mozilla thunderbird(雷鸟)
————————————————————————————————
邮件系统构成
发信服务+收信服务+客户端工具
案例:
邮件服务器:mail.Anonymous.cn 192.168.4.6
邮件域:@Anonymous.cn
邮件账号:服务器的本地系统用户
主要软件
发信服务:postfix
收信服务:dovecot
MX(Mail exXchange 邮件交换记录)
[root@svr6 ~]# useradd x(创建两用户)
[root@svr6 ~]# useradd xx
[root@svr6 named]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "Anonymous.cn" {
type master;
file "Anonymous.cn.zone";
};
[root@svr6 named]# vim Anonymous.cn.zone
@ MX 10 mail.Anonymous.cn.(@ MX 优先级 邮件服务器的fqdn)
mail A 192.168.4.6(邮件服务器地址)
[root@pc05]# service named restart
发信服务:Postfix:
在redhat6,postfix已经默认安装,但是监听地址是127.0.0.1:25
相关目录及配置文件
配置文件,存放在/etc/postfix/下
服务配置:/etc/postfix/main.cf
主程序配置:/etc/postfix/master.cf
管理程序,存放在/usr/sbin/下
postalias,postmap,postconf,postfix,postqueue,postsuper
邮件通信日志(排错依据):
/var/log/maillog
邮件队列目录,/var/spool/postfix子目录
incoming,active,deferred,hold,corrupt
postconf:查看当前有效配置(所有可设置的项)
postconf -d:查看所有默认配置(所有可设置的项)
postconf -n:只列出修改过的配置(非默认)
postconf -e 'inet_interfaces = all'(直接改选项)
[root@svr6 postfix]# postconf
服务接口及域设置:
基本配置参数
inet_interfaces:监听服务的接口地址
myhostname:服务器主机名
mydomain:主邮件域
myorigin:外发邮件时的发邮件域地址
mydestination:能够本地投递的收件域
邮箱类型及位置:
邮箱类型
mbox:每个用户一个邮箱文件,存放所有的邮件消息,当邮件内容较多时效率较低
——》传统邮箱:/var/spool/mail/用户名
maildir:每个用户一个邮箱目录,每封邮件对应一个单独的文件,存取速度和效率更好,管理邮件内容更加方便
home_mailbox:邮箱位置及类型
[root@svr6 postfix]# vim main.cf
home_mailbox = Maildir(采用Maildir邮箱类型)
Ps:其中maildir表示邮箱名称,放在用户宿主目录下,当收到第一封邮件后会自动创建。
末尾的 / 表示此邮箱是一个目录(非mailbox方式)
精简配置文件
[root@svr6 postfix]# cp main.cf main.bak(安全起见,备份默认的配置文件)
[root@svr6 postfix]# mv a.txt main.cf (覆盖原有的配置文件)
mv:是否覆盖"main.cf"? y(y)
[root@svr6 postfix]# vim main.cf (修改main.cf)
inet_interfaces = all(开启)
mydomain = Anonymous.cn(主邮件域)
myhostname = mail.$mydomain($mydomain变量,相当于mail.Anonymous.cn)
myorigin = $mydomain
mydestination = $mydomain,$myhostname, localhost.$mydomain, localhost(加上$mydomain变量)
home_mailbox = Maildir/
[root@svr6 ~]# service postfix restart(配置好后,重启服务)
MUA客户端软件
mail命令:不需要任何配置,直接在本机作为邮件服务器
只要做必要的配置,可以以其他主机作为邮件服务器
mail用法:
发信:mail -s '标题' -r 发件人地址 收件人地址
echo '文件'| mial -s '标题' -r 发件人地址 收件人地址
mial -s '标题' -r 发件人地址 收件人地址 < 文件目录/文件
[root@svr6 ~]# mail -s 'hydra' -r xx@Anonymous x@Anonymous.cn(实例)
hail hydra!!(写完后ctrl+d发送)
[root@svr6 ~]# echo 'hail hydra'|mail -s 'hydra' -r xx@Anonymous.cn x@Anonymous.cn(管道方式发送)
[root@svr6 ~]# mail -s 'hydra' -r xx@Anonymous.cn x@Anonymous.cn < /etc/passwd(邮件内容较多时,可以先把邮件写好封装在文件中,用<重定向输入)
收信:
[root@svr6 ~]# ls ~x/(进入x的家目录)
Maildir
[root@svr6 ~]# ls ~x/Maildir/(新邮件放在new下)
cur/ new/ tmp/
[root@svr6 ~]# ls ~x/Maildir/new/
1499966759.Vfd00I100928M340082.svr6.tedu.cn
1499967055.Vfd00I10092bM763659.svr6.tedu.cn
1499967565.Vfd00I10092cM389136.svr6.tedu.cn
[root@svr6 ~]# cat ~x/Maildir/new/1499966759.Vfd00I100928M340082.svr6.tedu.cn(查看邮件内容)
Return-Path: <root@Anonymous.cn>
X-Original-To: x@Anonymous.cn
Delivered-To: x@Anonymous.cn
Received: by mail.Anonymous.cn (Postfix, from userid 0)
id 16DF618061E; Fri, 14 Jul 2017 01:25:58 +0800 (CST)
Date: Fri, 14 Jul 2017 01:25:58 +0800
To: x@Anonymous.cn
Subject: hydra
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20170713172559.16DF618061E@mail.Anonymous.cn>
From: root@Anonymous.cn (root)
————————————————————————————————————
C/S架构
从邮件服务器本机来发信,收信
svr6上的mail——》svr6上的postfi
svr6上的mail——》svr6上的邮箱目录
从客户机来收信,发信(使用刚搭建的邮件服务器)
pc05上的mail——》svr6上的postfi
pc05上的mail——》svr6上的dovecot(邮箱目录)
构建dovecot收信服务:
安装dovecot软件包,默认支持POP3,IMAP这两种收信协议,
根据需要,可将其设为开机自启
[root@svr6 ~]# yum -y install dovecot
[root@svr6 ~]# vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no(允许明文通信)
[root@svr6 ~]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir(用户邮件存放目录)
SMTP认证的工作方式:
Simple Authentication and Security Layer
cyrus-sas-plain 软件包(默认安装)
[root@svr6 ~]# rpm -qa | grep cyrus
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
SMTP认证的实现:
启动saslauthd服务
[root@svr6 ~]# service saslauthd restart
[root@svr6 ~]# chkconfig saslauthd on
调整postfix配置,添加认证控制参数
[root@svr6 ~]# vim /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes(启用SASL认证)
mynetworks = 127.0.0.1(设置信任网络)
smtpd_sasl_security_options = noanonymous(阻止匿名发信)
smtpd_recipient_restrictions = (设置收件人过滤)
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination (拒绝向未授权的目标发信)
配置mail客户端:
命令行
在客户机上为mail命令建立配置文件,
/etc/mail.rc或者~/.mailrc
[root@pc05 ~]# vim ~./mailrc
set smtp=smtp://mail.Anonymous.cn(发信服务器)
set from=x@Anonymous.cn(发件人地址)
set smtp-auth-user=x@Anonymous.cn(指定认证用户)
set smtp-auth-password="Taren1"(指定认证密码)
set folder=imap://Anonymous.cn(收信服务器地址)
set password-x@Anonymous.cn="Taren1"(收信密码)
邮件图形界面thunderbird(雷鸟)
——————————————————————————————————
linux 邮件服务器的更多相关文章
- Linux邮件服务器架构
// 上面的过程只是实现了简单的本地用户的文件发送功能,只需要安装mailutil,不需要安装配置sendmail,看鸟哥的Linux私房菜中写的应该是本地用户发送邮件不需要sendmail.只有当非 ...
- linux邮件服务器postfix配置实例
linux邮件服务器postfix配置实例(超级详细!!!) 2013-03-13 13:30:21 标签:邮件服务器 linux 1. 系统安装:1)centos4.3 选上MAIL组件里的全部.2 ...
- 教你如何架设linux邮件服务器postfix
检查linux是否有安装postfix和dovecot 检查命令如下: Rpm -qa |grep postfix; Rpm –qa |grep dovecot; 如果没有显示任何数据,表明没有安 ...
- linux 邮件服务器—Extmail
环境: Centos 6.5 :172.16.9.13 (DNS 服务器) Centos 6.5: 172.16.9.11 (postfix 邮件服务器) 安装软件: yum -y install p ...
- Linux 邮件服务器 之跟我一步一步来实现一个邮件系统【转】
转自:http://tchuairen.blog.51cto.com/3848118/1686875/ 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法 ...
- 二十六、linux邮件服务器
1.安装: yum install -y sendmail 因为是最小安装,需要包没有安装 yum install -y mailx 2.日志:/var/log/maillog 3.启动:/etc ...
- 转-阿里云CentOS Linux服务器上用postfix搭建邮件服务器
http://www.cnblogs.com/dudu/archive/2012/12/12/linux-postfix-mailserver.html 注:本文的邮件服务器只用于发送邮件,也就是ST ...
- linux搭建邮件服务器
一.概述: 在配置邮件服务器之前,先解释几个概念. 通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail ...
- linux sendmail 邮件服务器架设(fedora 8)
linux sendmail 邮件服务器架设(fedora 8) 2009-01-22 17:27 3316人阅读 评论(2) 收藏 举报 邮件服务器linuxprotocolscaching测试lo ...
随机推荐
- curl错误码说明
1.得到错误码 $errno=curl_errno($ch); if($errno!=0){ -- } 2.错误码说明 <?php return [ '1'=>'CURLE_UNSUPPO ...
- Html的<meta>标签使用方法及用例
浏览器支持 所有浏览器都支持 <meta> 标签. 定义和用法 <meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和 ...
- python并发编程之多进程(理论)
一.什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 二.进程与程序的区别 程序:仅仅是一堆代 进程:是指打开程序运行的过程 三.并发与并行 并发与并行是指cpu运行多个 ...
- 【转】linux下设置ssh无密码登录
ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执行如下: 1. $cd ~/.ssh ...
- Java NIO 之 Socket Channel
在Java NIO中用Channel来对程序与进行I/O操作主体的连接关系进行抽象,这些IO主体包括如文件.Socket或其他设备.简而言之,指代了一种与IO操作对象间的连接关系. 按照Channel ...
- 安装supervisor
机器版本 centos 6.5 python 版本 2.6.6 在终端输入 easy_install supervisor 并回车,linux会自动联网并下载supervisor源码解压并安装 安装成 ...
- 纯静态界面中(html)中通过js调用dll中的方法从数据库中读取数据
最近接到一个离职员工的任务,一个搭好框架的ERP系统,看了两天,说一下看到的东西,整个项目目录中我没发现一个.aspx后缀的文件,全是静态HTML文件,之后发现他用的jquery简直看的头疼,不过大概 ...
- Go笔记-继承
[Go中继承的实现] 当一个匿名类型被内嵌在结构体中时,匿名类型的可见方法也同样被内嵌,这在效果上等同于外层类型 继承 了这些方法:将父类型放在子类型中来实现亚型 package main i ...
- Python元编程
简单定义"元编程是一种编写计算机程序的技术,这些程序可以将自己看做数据,因此你可以在运行时对它进行内审.生成和/或修改",本博参考<<Python高级编程>> ...
- Python中Template使用的一个小技巧
Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...