Postfix邮件服务器搭建及配置
一、邮件服务器(Mail Server)的传输协议
1、简单邮件传输协议(SMTP):Simple Mail Transger Protocol
2、扩展的简单邮件传输协议(ESMTP):Extended Simple Mail Transger Protocol
3、邮局协议(POP3):Post Office Protocol
4、互联网邮件访问协议(IMAP4):Internet Mail Access Protocol
5、简单认证安全层(SASL):Simple Authintication Secure Layer
6、邮件传输代理(MTA):SMTP服务器
sendmail(m4语言),qmail,postfix(模块化设计,与sendmail兼容,安全,效率高)
7、邮件投递代理(MDA):procmail,maildrop
8、邮件检索代理(MRA):pop3,imap4的实现
9、邮件用户代理(MUA):
Outlook Express,Outlook
Foxmail
Thunderbird
Evolution
mutt(文本界面)
10、Webmail:Openwebmail、squirrelmail(小松鼠)、Extmail(Extman)
二、安装Postfix+SASL(courier-authlib)+MySQL
1、安装MySQL
如果没有mysql用户则添加:
# useradd -r mysql -s /sbin/nologin
# tar zxvf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
# ln -sv /usr/local/mysql-5.6.30-linux-glibc2.5-x86_64 /usr/local/mysql
# chown mysql.mysql -R mysql-5.6.30-linux-glibc2.5-x86_64
创建MySQL的数据文件目录
# mkdir -pv /data/mysql
# chown -R mysql.mysql /data/mysql
初始化数据库
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
复制MySQL的服务启动脚本到/etc/rc.d/init.d/下
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
将mysqld添加到服务聊表并设置开机自启动
# chkconfig --add mysqld
# chkconfig mysqld on
MySQL的配置文件:/etc/my.cnf或/etc/mysql/my.cnf-->$MYSQL_Base/my.cnf -->
--defaults-extra-file=/path/to/some_my.cnf -->.my.cnf
如果找到的不同,则合并,如果不同,则以最后一个为准
本人把所有配置文件都删了只留了下面这个文件
# vim /etc/my.cnf
加入如下内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server_id = 1
log_bin = /data/mysql/mysql_binlog
lower_case_table_names=1
binlog-ignore-db=mysql,test
port = 3306
pid-file=/usr/local/mysql/mysql.pid
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_rnd_buffer_size = 4M
thread_cache_size = 8
query_cache_size = 16M
thread_concurrency = 2
datadir = /data/mysql
添加MySQL的到环境变量:
# vim /etc/profile.d/mysql.sh加入如下内容:
export PATH=/usr/local/mysql/bin:$PATH
# source /etc/profile.d/mysql.sh
删除匿名用户:
mysql> drop user ''@'localhost';
mysql> drop user ''@'master.fansik.com';
给root用户添加密码:
mysql> update user set password=password('fanjinbao') where user='root';
mysql> flush privileges;
如果增加密码后还想直接用mysql直接登录那就:
# vim ~/.my.cnf加入:
[mysql]
user = root
password = fanjinbao
socket = /tmp/mysql.sock
导出头文件:
# ln -sv /usr/local/mysql/include/ /usr/include/mysql
导出库文件:
# vim /etc/ld.so.conf.d/mysql.conf加入:/usr/local/mysql/lib
# ldconfig -v
查看是否添加成功:
# ldconfig -p | grep mysql
2、安装postfix
postfix官方网站:http://www.postfix.org/
创建postfix用户和postdrop用户
# groupadd -g 2525 postfix
# useradd -g postfix -u 2525 -s /sbin/nologin -M postfix
# groupadd -g 2526 postdrop
# useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop
安装postfix
# tar xf postfix-2.10.10.tar.gz
# cd postfix-2.10.10
如果是最小化安装的CentOS系统,需要安装:
# yum -y install libaio* cyrus-sasl-devel db*-devel gcc openssl-devel
# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm -L/usr/lib64/sasl2 -lsasl2 -lssl -lcrypto'
# make
# make install
# postfix start
postfix的配置文件:
master:/etc/postfix/master.cf
mail:/etc/postfix/main.cf
参数 = 值:参数必须写在行的绝对行首,以空白开头的行被认为是上一行的延续
postfix启动脚本及开机自启动设置:http://www.cnblogs.com/fansik/p/5683775.html
postconf:配置postfix
-d:显示默认配置
-n:修改了的配置
-m:显示支持的查找表类型
-A:显示支持的SASL客户端插件类型
smtp状态码:
1xx:纯信息
2xx:正确
3xx:上一步操作尚未完成,需要继续补充
4xx:暂时性错误
5xx:永久性错误
smtp协议命令:
helo(smtp协议)
ehlo(esmtp协议)
mail from:
rcpt to:
alias:邮件别名
abc@fansik.com postmaster@fansik.com
/etc/aliases-->hash-->/etc/aliases.db
# newaliases
postfix默认把本机的IP地址所在的网段识别为本地网络,并且为之中继邮件
至此,如果你在虚拟中做的测试是无法向外网发送邮件的
Postfix邮件服务器搭建及配置的更多相关文章
- 烂泥:Postfix邮件服务器搭建之虚拟用户配置
virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...
- 烂泥:Postfix邮件服务器搭建之软件安装与配置
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb Postfix邮件服务器的搭建需要使用到几个软件,分别是cyrus-sasl.postf ...
- 烂泥:Postfix邮件服务器搭建之准备工作
说实话,Postfix邮件服务器的搭建是一件很麻烦的事情,需要各种软件之间的配置和调试.在写这篇文章之前,我也是搭建测试了不下于10次才算把整个流程给走通,今天刚好有时间把整个搭建过程记录下来. 在正 ...
- Postfix 邮件服务器搭建
搭建服务环境: Centos 6 配置域名hosts: mail.demonC6.com 1.清理系统自带的邮件软件 # rpm -qa | grep sendmail* # rpm -e sendm ...
- postfix邮件服务器搭建01-准备篇
本系列文章主要介绍linux下主流的开源邮件系统postfix的搭建过程,构建一个通过postfix虚拟用户管理的完整的邮件系统, 该系统包括以下组件: 邮件收发端postfix,dovecot, 邮 ...
- postfix邮件服务器搭建03-webmail安装篇
本文接着上文的安装进行,介绍另一个WebMail功能更加人性化的roundcube.当然也可以对已有的postfix邮件系统进行功能完善 1.下载安装roundcube cd /server/tool ...
- postfix邮件服务器搭建02-安装篇
本文接着上文的环境,进行postfix邮件发信端和dovecot邮件收信端的部署,之后部署基于浏览器的extmail图形管理端,使管理员可以通过网页对邮件虚拟用户进行管理,对邮件服务器进行管控 1.p ...
- postfix邮件服务器搭建04-终结篇
本来是计划对postfix做一个全系列的安装文档的,不过在查某个知识点的时候,偶然找到一个已经写好的postfix全系列文章,在全部看完之后惊为天人,我认为:总体上会比我要写的要好,所以我准备借用一下 ...
- CentOS6.4下邮件服务器搭建
CentOS6.4下邮件服务器搭建 linux下邮件服务器的搭建大致分为三个步骤 准备工作(真实的生产环境下需要) 发送服务器安装及配置 (Postfix) 接收服务器安装及配置(dovecot) ...
随机推荐
- <转载>SQL查询数据库各表所占空间
IF OBJECT_ID('tempdb..#TB_TEMP_SPACE') IS NOT NULL DROP TABLE #TB_TEMP_SPACE GO CREATE TABLE #TB_TEM ...
- pickle 序列化反序列化
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- QT_BEGIN_NAMESPACE和QT_END_NAMESPACE的作用
本文根据在网上找到的一些资料总结来的,并加入了一些自己的想法. 在源代码中是这样定义的: # define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE { # ...
- Basic linux command
1. useradd 解释:添加新用户,在/etc/password文件中添加一行记录. 参数: -g 用于添加账户时指定该账户的私有组,如果不指定-g参数,useradd命令会自动创建与该用 ...
- asp.net中关于Microsoft 信息完整性、隐私性等集成信息安全服务服务 integrated security=SSPI
string strConn=@"server=(local)\SQLExpress;database=AdventureWorks;integrated security=SSPI&quo ...
- [linux-内核][转]内核日志及printk结构浅析
这段时间复习了一下内核调试系统,注意看了一下printk的实现以及内核日志的相关知识,这里做一下总结. 1.问题的引出: 做DPDK项目时,调试rte_kni.ko时,发现printk并不会向我们想想 ...
- 有关javascript的性能优化(合理的管理内存)
使用具备垃圾收集机制的语言编写程序,开发人员一般不必操心内存管理的问题.但是,Javascript在进行内存管理及收集时面临的问题是有点与众不同.其中最主要的一个问题是分配给Web浏览器的可用内存数量 ...
- 关于HttpURLConnection.setFollowRedirects
public static void HttpURLConnection.setFollowRedirects(boolean followRedirects)public void HttpURLC ...
- 简述UIViewControl之间的七种传值方式~~~
将自己学习到的UIViewControl之间传值的几种方式在这里做一下总结,希望童鞋们多多支持哈--- 一.正向传值方式 这种方式传值应该是最简单的方式,我们先来建立两个视图控制器暂且称为OneVie ...
- html5 请求的URL转成 OC可用属性字符串显示
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:helpUrlStr]]; NSString *string = [ ...