千家信息网

Linux系统下怎么安装和配置postfix邮件服务器

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"Linux系统下怎么安装和配置postfix邮件服务器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2025年12月02日Linux系统下怎么安装和配置postfix邮件服务器

本篇内容介绍了"Linux系统下怎么安装和配置postfix邮件服务器"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一,安装postfix,cyrus-sasl,cyrus-imapd

如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源

代码如下:


[root@localhost ~]# yum install postfix
[root@localhost ~]# yum install cyrus*


二,删除了sendmail

代码如下:


[root@localhost ~]# rpm -e sendmail


或者

代码如下:


[root@localhost ~]# yum remove sendmail


三,更改默认邮件传输代理(MTA)

代码如下:


[root@localhost sasl2]# alternatives --config mta


共有 1 个程序提供"mta"。

选择 命令
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

按 Enter 来保存当前选择[+],或键入选择号码:1
上面的只有一个postfix,sendmail已经被我删了。可以通过下面命令来查看。

代码如下:


[root@localhost ~]# alternatives --display mta


四,postfix,cyrus-sasl,cyrus-imapd相关配置

1,postfix主配置文件main.cf

代码如下:


[root@localhost postfix]# vim /etc/postfix/main.cf
myhostname = localhost //76行,将等号后面的部分改写为本机主机名
mydomain = 51yip.com //82行,设置域名
myorigin = $mydomain //97行,把$myhostname改为$mydomain
inet_interfaces = all //112行,把后面的localhost改成all
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,把前面的注释拿掉,并加一下$mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8 //263行,设置内网和本地IP
local_recipient_maps = //209行,把前面的注释拿掉。
smtpd_banner = $myhostname ESMTP unknow //568行,把前面的注释拿掉,然后把$mail_name ($mail_version)改成unknow

//在main.cf文件的底部加上以下内容
smtpd_sasl_auth_enable = yes //使用SMTP认证
broken_sasl_auth_clients = yes //让不支持RFC2554的smtpclient也可以跟postfix做交互。
smtpd_sasl_local_domain = $myhostname // 指定SMTP认证的本地域名
smtpd_sasl_security_options = noanonymous //取消匿名登陆方式
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制
smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围
message_size_limit = 15728640 //邮件大小
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp //设置连接cyrus-imapd的路径


如果不加local_recipient_maps这个配置,收邮件收不到,下面是qq的退信。

收件人邮件地址(tank@51yip.com)不存在,邮件无法送达。host mail.51yip.com[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)

2,cyrus-sasl配置

代码如下:


[root@localhost postfix]# vim /etc/sasl2/smtpd.conf //在文件尾部加上以下内容
log_level: 3 //记录log的模式
saslauthd_path:/var/run/saslauthd/mux //设置一下smtp寻找cyrus-sasl的路径,在这里要提一下的32位的机器和64位的机器smtpd.conf的路径是不一样的。
//这是centos 5.5 32位机器上smtpd的配置文件
[root@linux sasl2]# ls |grep conf
Sendmail.conf
smtpd.conf
[root@linux sasl2]# pwd
/usr/lib/sasl2
//这是centos 6.0 64位机器上smtpd的配置文件,其他地方没有smtpd的配置文件
[root@localhost postfix]# ls /etc/sasl2/ |grep smtpd
smtpd.conf

网上有不少关于postfix安装文章,配置的时候并没有明确提出是32位机器,还是64位机器。所以在这里标明一下。

3,配置cyrus-imapd

cyrus-imapd的主要配置文件有下面三个
这里是默认的配置,也就是说上面三个文件我是没有动过的。在这里提醒一下imapd.conf在这个文件里面,你可以设置管理账号

,设置邮件存放目录,设置密码连接方式等。

五,启动postfix,cyrus-sasl,cyrus-imapd

启动cyrus-imapd服务,就可以同时提供pop和imap服务,如果你已安装了dovecot服务就可以删除掉,cyrus-imapd和dovecot二者选其一就行了,二都可以提供pop和imap服务,不过cyrus-imapd可以为每个用户创建一个信息,而且信箱具有层次结构,比较好管理。建议用cyrus-imapd。

代码如下:


[root@linux sasl2]# /etc/init.d/postfix start
[root@linux sasl2]# /etc/init.d/saslauthd start
[root@linux sasl2]# /etc/init.d/cyrus-imapd start


查看一下进程,

代码如下:


//smtp监听是25端口
[root@linux u]# netstat -tpnl |grep smtpd


tcp 0 0 127.0.0.1:25


代码如下:


/etc/sysconfig/cyrus-imapd
/etc/cyrus.conf
/etc/imapd.conf

0.0.0.0:* LISTEN 6319/smtpd

代码如下:


//110(POP3)和143(IMAP)端口,下面都已经有了
[root@linux u]# netstat -tpnl |grep cyrus


tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 :::993 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::995 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::110 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::143 :::* LISTEN 23593/cyrus-master
tcp 0 0 :::2000 :::* LISTEN 23593/cyrus-master

启动是没有问题的。


六,测试cyrus-sasl

代码如下:


[root@linux t]# passwd cyrus //设置cyrus的密码
[root@linux sasl2]# testsaslauthd -u cyrus -p '******' //系统用户和密码


0: OK "Success."
如果显示是上面的内容说是smtp是没有什么问题

七,cyrus-imapd生产邮件管理员账号,并添加测试账号

安装完cyrus-imapd后会产生一个管理账号是cyrus,所属用户组是mail

代码如下:


[root@linux sasl2]# id cyrus //imapd.conf里面默认的管理员账号就是cyrus


uid=76(cyrus) gid=12(mail) groups=12(mail),76(saslauth)
在认证admin账号时,我发现32位系统和64位系统有一点不同,二种系统我都配置过,配置都是一样的,
但是出现的结果不一样,看下图

32位机器cyrus管理员用户认证

64位机器cyrus管理员用户认证

从上图可以看出,32位的系统是不用加上--auth plain,64位的要,如果不加的话,根本进不去。

进去后,我们来添加一下测试账号

代码如下:


[root@linux sasl2]# cyradm -u cyrus localhost


IMAP Password:
localhost> cm tank
localhost> lm
tank (\HasNoChildren)
localhost> quit
这样我们可以在/var/spool/imap中看到,生成的目录,32位机器和64位机器生成的目录是不一样的

代码如下:


//这是64位系统生成的目录
[root@localhost u]# ls
user^tank
[root@localhost u]# pwd
/var/spool/imap/u

//这是32位系统生成的目录
[root@linux t]# ls
tank
[root@linux t]# pwd
/var/spool/imap/t


八,测试收发邮件

测试前添加一下DNS,
1,mail.51yip.com A 默认 122.225.***.***
2,mail.51yip.com A 联通 60.12.***.***
3,@ MX 默认 mail.51yip.com
第1和第2,是添加二条A记录,第三行,设置了一下MX记录,这个千万不要忘了,不然你的域名是不通的。

方法有很多,我们可以利用telnet来测试,不过用telnet来测试收发邮件比较麻烦,用linux自带的
mail命令就方便多了

代码如下:


[root@localhost u]# mail -s '看一下' 95219454@qq.com < /etc/imapd.conf

"Linux系统下怎么安装和配置postfix邮件服务器"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

配置 代码 邮件 机器 系统 文件 账号 测试 管理 服务 内容 用户 目录 认证 管理员 这是 生成 命令 域名 密码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软路由器和存储服务器的区别 扬州网络营销软件开发推荐咨询 王者荣耀英雄数据库怎么查 维护网络安全对个人的意义 浪潮服务器关机按钮在哪儿 企业网盘能否建立数据库 comsol服务器占用极低 东莞市品易网络技术有限公司 软件开发行情分析 软件开发需要几个阶段 盘锦软件开发报价多少 如何用网络安全认证 软件开发资质认证培训 u8数据库配置错误26 蛋白质组有公共数据库吗 中国数据库中心在哪里 我的世界手游极限生存服务器 毕业论文atm软件开发 北京做服务器的公司云主机 操作系统未配置服务器连接地址 网络安全学什么编程语言好 大学专业软件开发去哪所学校 天猫精灵+网络安全 平谷区综合软件开发介绍 无锡软件开发维修电话 买软件开发技术基础书 万达飞凡软件开发 前端软件开发工具软件 我的世界手游极限生存服务器 胡淼网络安全课
0