postfix基础邮件服务
postfix基础邮件服务
案例1:postfix基础邮件服务
1.1 问题
本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下:
- 监听本机的所有接口
- 将邮件域和邮件服务主机名都改为 example.com
然后在server0上使用mail命令测试发信/收信操作:
- 由 root 给本机用户 mike 发一封测试邮件
- 查收用户 mike 的邮箱,读取邮件内容,确保是从 root@example.com 发过来的
1.2 方案
电子邮箱:1234567@qq.com表示在互联网区域qq.com内的一台邮件服务器上属于用户1234567的一个电子邮箱(目录)。
postfix发信服务(TCP 25,SMTP)的功能:
- 为用户提供电子邮箱
- 为邮箱用户向其他邮件服务器发送邮件
- 为邮箱用户投递/存储收到的邮件
dovecot取信服务(TCP 110/143,POP3/IMAP)的功能:为邮箱用户提取邮件。
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:配置postfix基础邮件服务
1)安装postfix软件包
- [root@server0 ~]# yum -y install postfix
- .. ..
2)调整邮件服务配置
- [root@server0 ~]# vim /etc/postfix/main.cf
- .. ..
- inet_interfaces = all //监听接口
- mydomain = example.com //邮件域
- myhostname = example.com //本服务器主机名
3)启动postfix服务
- [root@server0 ~]# systemctl restart postfix
4)查看邮件服务监听状态
- [root@server0 ~]# netstat -antpu | grep :25
- tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1739/master
- tcp6 0 0 :::25 :::* LISTEN 1739/master
步骤二:使用mail命令发信/收信
1)给用户root发一封测试邮件
- [root@server0 ~]# echo '1111' | mail -s 'mail1' root
2)由管理员收取指定用户root的邮件
- [root@server0 ~]# mail -u root
- Heirloom Mail version 12.5 7/5/10. Type ? for help.
- "/var/mail/root": 1 message 1 new
- >N 1 root Sat Nov 26 17:40 18/532 "mail"
- & 1 //读取第1封邮件内容
- Message 1:
- From root@example.com Sat Nov 26 17:40:06 2016
- Return-Path: <root@example.com>
- X-Original-To: root
- Delivered-To: root@example.com
- Date: Sat, 26 Nov 2016 17:40:06 +0800
- To: root@example.com
- Subject: mail1 //检查邮件标题
- User-Agent: Heirloom mailx 12.5 7/5/10
- Content-Type: text/plain; charset=us-ascii
- From: root@example.com (root)
- Status: R
- 1111 //检查邮件内容
- & q //退出mail程序
- Held 1 message in /var/mail/root
- [root@server0 ~]#
案例2:postfix空客户端邮件服务
2.1 问题
本例要求初始化后端邮件服务器desktop0.example.com,操作如下:
- lab smtp-nullclient setup
然后将虚拟机server0配置为空客户端邮件服务器,具体要求如下:
- 此系统不接收外部发送来的邮件,本地发送的任何邮件都会自动路由到 smtp0.example.com
- 所发出的邮件显示来自于 desktop0.example.com
- 在 server0 上发送一封标题为 Test1 的邮件给本地用户 student ;实际结果将由 desktop0 上的本地用户 student 接收到此邮件
2.2 方案
postfix空客户端邮件服务器的功能:
- 不为用户提供电子邮箱
- 为邮箱用户向其他邮件服务器发送邮件
- 不接受(投递/存储)发送给给本服务器的邮件
空客户端邮件服务器的工作环境:
客户端 ---> 空客户端邮件服务器(发)---> 普通邮件服务器(发/收)
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:将server0配置为空客户端邮件服务器
1)重建postfix服务配置
删除配置文件/etc/postfix/main.cf,然后重装postfix软件包:
- [root@server0 ~]# rm -rf /etc/postfix/main.cf
- [root@server0 ~]# yum -y reinstall postfix
- .. ..
2)修改main.cf配置文件,调整或修改现有配置
- [root@server0 ~]# vim /etc/postfix/main.cf
- #mydomain = example.com //移除上一案例的配置
- #myhostname = example.com
- relayhost = [smtp0.example.com] //目标邮件服务器
- inet_interfaces = loopback-only //仅本机
- myorigin = desktop0.example.com //发件来源域
- mynetworks = 127.0.0.0/8 [::1]/128 //信任网络
- mydestination = //将投递域设为空
3)启动postfix服务
- [root@server0 ~]# systemctl restart postfix
4)查看邮件服务监听状态
- [root@server0 ~]# netstat -antpu | grep :25
- tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2054/master
- tcp6 0 0 ::1:25 :::* LISTEN 2054/master
步骤二:将desktop0配置为后端邮件服务器
1)执行 lab smtp-nullclient setup
- [root@desktop0 ~]# lab smtp-nullclient setup
- Setting up desktop machine...
- Setting up dovecot...
- Generating new dovecot certificate...
- Setting up postfix... Generating new postfix certificates...
- Setting up firewall...
- Setting up user student...
- Installing httpd to share cert...
2)确认发信服务(postfix)
- [root@desktop0 ~]# netstat -antpu | grep :25
- tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 31366/master
- tcp6 0 0 :::25 :::* LISTEN 31366/master
3)确认取信服务(dovecot)
- [root@desktop0 ~]# netstat -antpu | grep dovecot
- tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 31229/dovecot
- .. ..
步骤三:使用mail命令测试空客户端邮件服务器
1)在server0(空客户端邮件服务器)上给本机用户student发信
- [root@server0 ~]# echo 'Mail Data.' | mail -s 'Test1' student
- [root@server0 ~]# mail -u student //本机用户并不会收到邮件
- No mail for student
2)在desktop0(后端邮件服务器)上的同名用户student可以收到信
- [root@desktop0 ~]# mail -u student
- Heirloom Mail version 12.5 7/5/10. Type ? for help.
- "/var/mail/student": 1 message 1 new
- >N 1 root Sat Nov 26 18:29 21/833 "Test"
- & 1 //读取第1封邮件内容
- Message 1:
- From root@desktop0.example.com Sat Nov 26 18:29:08 2016
- Return-Path: <root@desktop0.example.com>
- X-Original-To: student@desktop0.example.com
- Delivered-To: student@desktop0.example.com
- Date: Sat, 26 Nov 2016 18:29:08 +0800
- To: student@desktop0.example.com
- Subject: Test1 //检查邮件标题
- User-Agent: Heirloom mailx 12.5 7/5/10
- Content-Type: text/plain; charset=us-ascii
- From: root@desktop0.example.com (root)
- Status: R
- Mail Data. //检查邮件内容
- & q //退出mail程序
- Held 1 message in /var/mail/student
- [root@desktop0 ~]#
postfix基础邮件服务的更多相关文章
- 工程师技术(二):postfix基础邮件服务、postfix空客户端邮件服务、搭建mariadb数据库系统、配置一个数据库、使用数据库查询
一.postfix基础邮件服务 目标: 本例要求在虚拟机server0上配置 postfix 基础服务,具体要求如下: 1> 监听本机的所有接口 2> 将邮件域和邮件服务主机名都改为 ...
- 十三.基础邮件服务、parted分区工具、交换分区、链路聚合
1.基础邮件服务 DNS服务器:虚拟机classroom 以server0.example.com 为例 yg@server0.example.com xln@server0.exampl ...
- 创建基于MailKit和MimeKit的.NET基础邮件服务
邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础 ...
- MailKit和MimeKit的.NET基础邮件服务
MailKit和MimeKit的.NET基础邮件服务 邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Ne ...
- <邮件服务postfix+mysql>MAIL第二篇
环境:本服务是建立在第一篇的基础之上的,最好搭建好第一篇 玩此服务的前提是你的系统装好了msql和postfix服务. Postfix+mysql主要是把邮件服务的发与mysql结合使用.当然mysq ...
- postfix 邮件服务的安装及详解
该实验系统:cetnos 6.5 sendmail:性能好,设置复杂,适合老手 qmail:体积小260+k ,模块化.需要做二次开发,适合对邮件性能有要求的 postfix:前身是sendmail, ...
- Postfix 邮件服务 - postfix服务
postfix 邮件服务 也是基于sendmail (需要关闭或卸载sendmail)postfix 是一个电子邮件服务器,它为了改良sendmail邮件服务器而产生的,并且它的配置文件比sendma ...
- centos配置postfix邮件服务
1.环境初始化 [root@mail ~]# rpm -q centos-release //查看系统版本 centos-release-7-5.1804.el7.centos.x86_64 [roo ...
- Postfix 邮件服务 - PostfixAdmin
PostfixAdmin 基于web的postfix邮件发送服务器的管理工具,可以直接管理postfix的虚拟域名和邮件用户,前提是这些数据是存储在mysql或者是PostgreSQL数据库中. Po ...
随机推荐
- js小数计算引起的精度误差问题
我记得刚开始学js的时候学到浮点有举例0.1+0.2 它的计算结果是: 0.1+0.20.30000000000000004 很神奇的一个计算,js是弱语言,在精度上没做处理: 我就自己定义了加减乘除 ...
- FastDFS源码学习(一)FastDFS介绍及源码编译安装
FastDFS是淘宝的余庆主导开发的一个分布式文件系统,采用C语言开发,性能较优.在淘宝网.京东商城.支付宝和某些网盘等系统均有使用,使用场景十分广泛. 下图来源:https://blog.csdn. ...
- Rust入坑指南:齐头并进(下)
前文中我们聊了Rust如何管理线程以及如何利用Rust中的锁进行编程.今天我们继续学习并发编程, 原子类型 许多编程语言都会提供原子类型,Rust也不例外,在前文中我们聊了Rust中锁的使用,有了锁, ...
- JavaScript和JSCript的标准ECMAScript
相信很多人都听过JavaScript(简称JS),甚至学过JavaScript.但是却没听过ECMAScript(简称:EC). ECMAScript其实是JavaScript的标准,也就是JavaS ...
- python报错:ERROR: No matching distribution found for dns.resolver
可能有的小伙伴在安装dns.resolver的时候会遇到这个问题: 我百度的时候别人是: pip install dns-python 但是我这样安装也还是错误.有些时候是这个包改名了所以你没有搜索到 ...
- python爬取网站页面时,部分标签无指定属性而报错
在写爬取页面a标签下href属性的时候,有这样一个问题,如果a标签下没有href这个属性则会报错,如下: 百度了有师傅用正则匹配的,方法感觉都不怎么好,查了BeautifulSoup的官方文档,发现一 ...
- 洛谷 P5639 【CSGRound2】守序者的尊严 题解
原题链接 简要题意: 从 \(1\) 号位开始走,可以连续走过一段连续的 \(0\) ,每走一次,所有位置取反. (即 \(0 \gets 1\),\(1 \gets 0\)). 算法一 模拟暴力即可 ...
- Smallest Range II
2020-01-21 21:43:52 问题描述: 问题求解: 这个题目还是有点难度的,感觉很巧妙也很难想到. 整体的思路如下: 1. 首先原问题等价于 +0 / + 2*K 2. 那么res = M ...
- 控制台报错Cause: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 78; 元素类型 "select" 必须后跟属性规范 ">" 或 "/>"
首先我的控制台报错是这样的,我找了一下原因看到是第四行的错误: 它说元素select后面必须跟属性规范">""/>"但是我把我眼睛都快丑瞎了都没发现 ...
- 浏览器与DNS解析过程
浏览器解析 1.地址栏输入地址后,浏览器检查自身DNS缓存 地址栏输入chrome://net-internals/#dns 查看. 2.浏览器缓存中未找到,那么Chrome会搜索操作系统自身的DNS ...