postfix邮件服务器搭建
项目环境:
一台server ip:192.168.1.100 一台mail ip:192.168.1.200 一台win7 ip:192.168.1.222
项目需求:
1:在DNS Master上搭建DNS,能够解析mail.sw.com
2:在Mail Server上部署邮件服务器,和webmail软件
3:在Win7上用网页浏览测试
实现步骤:
1:在DNS服务器的正向解析数据库文件中添加MX记录
[root@server named]# vim sw.com.zone
$TTL 86400 @ IN SOA sw.com. root.sw.com. (2014062602 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimumIN NS server.sw.com.IN MX 5 mail.sw.com. server IN A 192.168.1.1 mail IN A 192.168.1.100
[root@server named]# service named restart
2:在mail服务器上安装postfix程序,启动服务,设置为开机启动,备份主配置文件
[root@mail ~]# yum -y install postfix
[root@mail ~]# service postfix start
[root@mail ~]# chkconfig postfix on
[root@mail ~]# netstat -anptul | grep :25 //查看25端口被哪个邮件程序监听
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4653/master //正被postfix的master监听
[root@mail ~]# cd /etc/postfix/
[root@mail postfix]# postconf -n > mail.txt //把postfix当前配置导出为简化版
[root@mail postfix]# cp main.cf main.cf.bak //备份原配置文件
[root@mail postfix]# mv mail.txt main.cf //用导出的简化配置替换原主文件
3:安装sasl认证服务,启动服务并设为开机启动,然后生成认证配置文件
[root@mail ~]# yum install cyrus-sasl
[root@mail ~]# service saslauthd start
[root@mail ~]# chkconfig saslauthd on
[root@mail ~]# cp /usr/lib64/sasl2/smtp.conf /etc/sasl2/smtpd.conf //从模板拷贝生成配置文件,然后生效
[root@mail ~]# service saslauthd restart
4:配置主配置文件
[root@mail postfix]# vim main.cf
...8 #inet_interfaces = localhost //注释掉监听本地端口20 myhostname = mail.sw.com //邮件服务器主机名21 mydomain = sw.com //邮件服务器所在区域22 myorigin = $mydomain //指定发件人DNS后缀 23 mydestination = $mydomain //指定Postfix允许处理sw.com的邮件 24 home_mailbox = Maildir/ //邮箱类型为每用户每封邮件都单独存放在家目录的Maildir下25 mynetworks = 127.0.0.1 //设置只允许本机转发到外部区域26 smtpd_sasl_auth_enable = yes //启用SASL认证27 smtpd_sasl_security_options = noanonymous //阻止匿名发信28 smtpd_recipient_restrictions = //收件人过滤,下两行顶格有空格表示和本行其实是一行29 permit_mynetworks,permit_sasl_authenticated, //允许mynetworks和通过sasl认证的用户31 reject_unauth_destination //拒绝向未授权的目标域发信
[root@mail ~]# service postfix restart
5:安装收信服务, 启动服务并设为开机启动
[root@mail ~]# yum -y install dovecot
[root@mail ~]# service dovecot start
[root@mail ~]# chkconfig dovecot on
6:安装webmail软件,编辑配置文件
[root@mail ~]# yum -y install squirrelmail
[root@mail ~]# vim /etc/squirrelmail/config.php
...26 $squirrelmail_default_language = 'zh_CN'; //改成中文显示28 $domain = 'sw.com'; //域名29 $imapServerAddress = '192.168.1.100'; //收信服务器地址...32 $smtpServerAddress = '192.168.1.100'; //发信服务器地址...
[root@mail ~]# service httpd start
[root@mail ~]# chkconfig httpd on
7:在win7上用网页测试
总结:postfix是目前linux上开源比较好用的邮件服务器,但默认情况下允许所有转发,很容易当成垃圾邮件的中转。本项目为了杜绝此现象,在邮件服务器上利用sasl程序做了本地用户认证控制,只允许经过服务器认证后的用户往外域发送邮件。
排错:1:linux默认25端口会被sendmail等其他邮件程序占用,请netstat看看当前25端口被哪个程序使用
2:导出postfix简化配置时先要执行postfix -n > 文件 然后在备份原配置文件,要不然导出失败
3:注意拼写检查,Maildir/ 是M大写,小写不生效
转载于:https://blog.51cto.com/sw5720/1431389
相关文章:

从DataView中生成Excel报表的方案(C#)
正文: 一、首先要引用一个Excel的组件,我一开始是在Office XP下尝试的,不 成功,后来把XP给干掉,装2k,就成功了,所以这里分享的是Office 2k下 引用相关组件来实现功能的,在工程中引…

被Python「苦虐」的日子太惨了!
Python因为其优越的特性广泛应用于数据分析、人工智能、Web开发、后端开发、自动化测试/运维、爬虫等领域,也得到了很多企业的青睐。甚至连BATZJ的技术大牛,都无可否认Python现在对于一个程序员发展的重要性!最近一两年,我身边也有…

BeanUtils威力和代价
2019独角兽企业重金招聘Python工程师标准>>> BeanUtils: 威力和代价(转载综合) Apache Jakarta Commons项目非常有用。我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件。其中的一个强大的组件就是BeanUtils。我将说明如何使…

C# 线程无法开启窗口的原因
在 C# 里面, 主窗口拥有主线程, 主线程产生子线程监控 Socket 埠, 子线程一收到数据流就会给主线程发送一个事件, 创建一个窗口. 现在的情况是子线程能够收到数据流, 主窗口能够收到子线程发送过来的事件, 能够创建一个窗口. 这个窗口有问题: 窗口状态像死掉程序的窗口一样, 反…

给力!斩获 GitHub 14000 Star,两周创办开源公司获数百万美元融资
作者 | 伍杏玲出品 | AI 科技大本营(ID:rgznai100)上世纪 90 年代初,21 岁大学生 Linus Torvalds 开源 Linux 操作系统,自此掀起全球开源浪潮。随后“中国 Linux 第一人”宫敏博士用手提肩背的方式将 20 盒磁带背回中国࿰…

root密码忘记怎么办
开机按e进入系统的紧急求援模式依次输入一下命令:mount -o remount,rw /sysrootchroot /sysrootecho "输入新密码" | passwd --stdin rootexitreboot转载于:https://blog.51cto.com/11552940/1971850

C#内容分页简单实现代码及祥解
//定义变量 int i,start,stop,t,stat,statt,pp,pagecount,pagesize; //变量初始值 stat0; statt0; start0;//开始查询的字符串位置,初始为0 stop0; pagesize2000;//定义每页至少显示字符串数 pagecount0; //获得当前的页数 paRequest.Params["page&qu…

灵活越障、花样空翻,腾讯轮腿式机器人亮相机器人顶会 ICRA
6月3日,腾讯轮腿式机器人Ollie(奥利)正式亮相。它像一个灵活的“轮滑小子”,能完成跳跃、360度空翻等高难度动作。 轮腿式机器人(wheel-legged robot)是近年来机器人研究的前沿领域。Ollie兼具轮式结构和腿…

android学习笔记之十服务(Service)
2019独角兽企业重金招聘Python工程师标准>>> Service拥有一个单独进程的模块. 1,继承自Service类,须实现public IBinder onBind(Intent intent) 2,通过startServie触发运行,stopService终止运行 生命周期: onCreate(如果是第一次运行) -> onStart -> onDest…

宝塔Linux常用命令
https://www.bt.cn/bbs/thread-1186-1-1.html 2017年3月8日发布全新架构的宝塔Linux 面板3.1Beta版,到现在的5.2.0正式版,历经100多天打磨,宝塔研发工程师做了大量优化适配,从最开始的只支持CentOS到现在支持CentOS、Ubuntu、Debi…

EMAIL发送系统(C#+基于SMTP认证) 2.0
这个是对于 EMAIL发送系统(C#基于SMTP认证) 1.0 的改版这个第一版是2002年11月写的,过了一年半了,才有人提意见,就修正了一下,因为后来做的项目一直用不上,也就没有注意到 前段时间有网友反馈了一些问题,这…

“奥利”来啦,腾讯Robotics X实验室跑出的“轮滑小子”
6月3日,腾讯Robotics X实验室的新成员——轮腿式机器人Ollie(奥利)正式亮相,它是机器狗Jamoca、Max和自平衡自行车之后,实验室又一创新成果。轮腿式机器人(wheel-legged robot)是近年来机器人研…

如何写一篇好的技术博客
在工作过程中,发现对很多东西都一知半解,不是很透澈,到头来很容易模糊,如果有一篇好的技术博客予以总结,一来即使忘记了,回国头来再看,仍然能 够从自己的思路中恢复;二来总结一下&am…

使用react心得
为什么80%的码农都做不了架构师?>>> 在使用react中,总会碰到这样那样的问题,如何解决这些问题,希望能够随着时间的积累,慢慢成熟! 在react中的renden函数里,不能使用setState这个方法,不然会死循环,原因:是因为setState会触发render,而render后又触发se…

将Byte数组转化为String
FCL得很多方法的返回值都是包含字符的Byte数组而不是返回一个String,这样的方法包含在如下的类中: System.Net.Sockets.Socket.Receive System.Net.Sockets.Socket.ReceiveFrom System.Net.Sockets.Socket.BeginReceive System.Net.Sockets.Socket.B…

[题解]UVA10054 The Necklace
链接:http://vjudge.net/problem/viewProblem.action?id18806 描述:给出一堆珠子,每个珠子有两种颜色,有一端颜色相同的珠子可以串在一起,问是否可以把所有珠子串在一起,并求其中一种方案。 思路ÿ…

程序员大厂不一定要进,算法必须要学!收藏89篇精选算法文章
为什么程序员都需要学算法?程序员对算法通常怀有复杂情感,算法很重要是共识,但是否每个程序员都必须学算法是主要的分歧点。很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上算法,觉得算法深不可测。在面试中…

专有云到混合云,是云计算的下半场?
查获案件案值达数十亿,为国家挽回近十亿元税款,是海关情报系统在全国应用一年后交出的答卷。 海关情报系统是海关总署与阿里云专有云共同搭建海关大数据云平台后推出的首个应用。 专有云的使命:激发政企大脑潜能 十年前,自己动手D…

C# 2.0 的partial
partial 关键字的作用是将你的 class 分为多个部分,编译器会将多个部分拼到一起去。 public partial class SampleClass ...{ public void MethodA() ...{ } } public partial class SampleClass ...{ public void MethodB() ...{ } } 和 public class Sa…

findbugs:may expose internal representation by ret
2019独角兽企业重金招聘Python工程师标准>>> findbugs:1. *** getXXX() may expose internal representation by returning ***.getXXX 2. *** setXXX(DATE )may expose internal representation by storing an externally mutable object into setXXX *…

AI时代的幕后英雄:谁在生产高质量的AI训练数据?
在AI浪潮的推动下,软件正在朝着更「智能」的方向发展。2017年,特斯拉人工智能部门主管、李飞飞高徒Andrej Karpathy提出了「软件2.0」的概念。 什么是「软件2.0」?其实就是神经网络。 在「软件1.0」时代,程序员用Java、Python、…

Webpack 核心开发者 Sean Larkin 盛赞 Vue
dev.io 近日邀请了 Webpack 核心开发者 Sean Larkin 回答开发者提问,其中几个问提比较有意思,和掘金的小伙伴们分享一下。 先上点前菜: 有一个开发者问 Sean 如何成为一个热门项目的核心作者。Sean 没有一上来就说该做什么,而是先…

设计模式C#描述——单例与多例模式
设计模式C#描述——单例与多例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式有以下特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单…

Nutch插件开发及发布流程
2019独角兽企业重金招聘Python工程师标准>>> 一,插件开发流程: 1,Nutch开发客户端环境搭建 2,plugin的源代码则保存在/src/java/org/apache/nutch/parse/self/ 类实现实例: public class CustomizedIndexin…

网红 AI 高仿坎爷发布说唱情歌,歌迷:堪比真人原声
来源 | Hyper超神经头图 | 下载于视觉中国近日,一个基于 Tacotron2 和 Transformer 实现文字转声音的 AI 应用——Uberduck.AI 破圈了,不少 TikTok 、YouTube 网红博主都在推荐这一神器。YouTube 的网红音乐艺术创意机构 Herr Fuchs 发布了一首新歌&…

设计模式C#描述——抽象工厂模式
设计模式C#描述——抽象工厂模式 阅读此文应先阅读简单工厂模式与工厂方法模式 抽象工厂模式是对象的创建模式,它是工厂方法模式的进一步推广。 假设一个子系统需要一些产品对象,而这些产品又属于一个以上的产品等级结构。那么为了将消费这些产品对象的责…

怎样才能学好Vue,听听尤雨溪怎么说?
如果你想问前端最值得学习的框架是什么,我一定会毫不犹豫地告诉你是Vue。无论你是技术小白还是前端工程师,Vue的重要性自不必多说。从首个Commit的提交到破茧重生的Vue3、Vite2,Vue凭借轻量级、简单易学等优势,不仅荣登GitHub Rep…

如何彻底卸载mysql(xp)
如何彻底卸载mysql 完整的卸载MySQL 5.x 的方法: 1、控制面板里的增加删除程序内进行删除 2、删除MySQL的安装文件夹C:\Program Files\MySQL,如果备份好,可以直接将文件夹全部删除 3、开始->运行-> regedit 看看注册表里这几个地方删…

(一)JNDI基础
一、简介 在Tomcat 4.1.27之后,在服务器上就直接增加了数据源的配置选项,直接在服务器上配置好数据源连接池即可。在J2EE服务器上保存着一个数据库的多个连接。每一个连接通过DataSource可以找到。DataSource被绑定在了JNDI树上(为每一个Data…

C# Idioms: Enum还是Enum Class(枚举类)
原文排版格式:http://www.marshine.com) reversion:2004/5/28 修改说明:感谢Ninputer提到的CLS兼容问题,同时修改了原来版本没有提及的Equals改写,以及修改""重载的不完善代码,和增加enum struct内容 reversion:2004/6…