dovecot+postfix+Roundcube+mysql搭建企业邮箱
首页->学习资料->其它->开发环境搭建 关键词: 发布时间:2024-06-28 15:06:15 浏览次数:1171

xx@hu-rong.com

发送给

xxx@gmail.com

为例


一些基础知识:

mua:mail user agent,如:foxmail,outlook

服务端协议:smtp(端口25):simple mail transfer protocol,基于tcp可靠传输,作用:把发件人的邮件服务器(qq)发送给接收人的服务器(gmail)

客户端协议:

pop3(端口110),允许邮件下载到客户端,客户端操作不会反馈到服务器,客户端操作快

imap(端口143),客户端操作会反馈到服务器,双向通讯,客户端操作慢

传输端:

mta:mail transport agent,类似于现实生活中的邮局和邮递员,服务端到服务端经过的传输代理,有点类似于路由器,基于smtp协议,可用于过滤垃圾邮件

本例中的mta分别为hu-rong.com、gmail.com

接收端(如下面用到的dovecot):

mda:mail delivery agent,类似于现实生活中的邮箱,保存邮件等待用户收取,主要有两种协议:

pop:post office protocol



1、dovecot:

安装:

参考:https://www.yisu.com/jc/299572.html

yum install -y dovecot

修改配置:

A、

cd /etc/dovecot/

cp dovecot.conf dovecot.conf.bak

vi dovecot.conf

protocols = imap pop3 lmtp    //这行默认被注释了,必须去掉注释。这里表示启用了imap pop3 lmtp协议

listen=ipv4     //监听所有的ipv4接口

login_trusted_networks = 0.0.0.0/0     //允许登录的网段

#这个配置加了后,Roundcube登录时用户名不管加不加@xxx.com都可以登录

auth_username_format = %n

B、

cd conf.d/

cp 10-mail.conf 10-mail.conf.bak

cp 10-ssl.conf 10-ssl.conf.bak

cp 10-auth.conf 10-auth.conf.bak

C、

vi 10-mail.conf修改如下:

# mbox是内部邮箱,属于dovecot持有。而通常IMAP协议支持多种邮箱,因此其他邮箱的内容就存储在/var/mail/%u

mail_location = mbox:~/mail:INBOX=/var/mail/%u

D、

vi 10-ssl.conf

ssl = no

E、

将10-auth.conf中的disable_plaintext_auth改为no

disable_plaintext_auth = no


F、

vi /etc/dovecot/conf.d/20-imap.conf

#自动给每个用户创建回收站、垃圾箱等,否则删除不了邮件

mail_plugins = $mail_plugins autocreate

然后在最后面添加

plugin {

autocreate = Trash

autocreate2 = Junk

autocreate3 = Drafts

autocreate4= Sent

autosubscribe = Trash

autosubscribe2 = Junk

autosubscribe3 = Drafts

autosubscribe4 = Sent

}


#添加一个用户

useradd hurong

#设置密码,设置一个最少8位的密码

passwd hurong

#切换到用户目录

cd /home/hurong

#创建邮件目录

mkdir -p mail/.imp/INBOX

#启动

service dovecot start

#检查端口是否启动

netstat -ntlp | grep 110

netstat -nltp | grep 143

#开放端口(云服务器在安全组中开放),不然下面命令行登录不了

25

110

143

#命令行登录邮箱

telnet 服务器ip 143     //ip就是服务器地址,143是imap的端口

#登录

a login hurong 密码


2、域名解析

mail MX hu-rong.com

mail A 服务器ip

@ A 服务器ip

image.png


3、postfix安装

postfix(25端口)

安装sendmail及相关组件

yum install -y postfix*

查找安装

rpm -qa | grep -i postfix

装在哪里

rpm -ql postfix|more

一般在/etc/postfix


/etc/postfix/mai.cf

myhostname = mail.hu-rong.com

mydomain = hu-rong.com

myorigin = $mydomain

inet_interfaces = all

inet_protocols = ipv4

mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain

#发信的时候,设置信任的客户端,可以设置为某一网段:192.168.1.0/24或全部0.0.0.0/0

mynetworks = 0.0.0.0/0

#设置转发邮件邮件域名

relay_domains = $mydestination

#设定邮件别名路径

alias_maps = hash:/etc/aliases

#设定指定邮件别名表资料库路径 

alias_database = hash:/etc/aliases

#设定邮件主机使用权限与过滤机制及邮件别名

#postmap hash:/etc/postfix/access

#postalias hash:/etc/aliases


4、Roundcube

需要安装php或mysql等一种数据库,依赖如下:

https://github.com/roundcube/roundcubemail/wiki/Install-Requirements

代码下载:https://roundcube.net

必须安装的扩展:

PCRE:  OK

DOM:  OK

Session:  OK

XML:  OK

Intl:  OK

JSON:  OK

PDO:  OK

Multibyte:  OK

OpenSSL:  OK

Filter:  OK

Ctype:  OK


可选扩展:我这里有2个没安装成功

cURL:  OK

FileInfo:  OK

Exif:  OK

Iconv:  OK

LDAP:  NOT AVAILABLE(See https://www.php.net/manual/en/book.ldap.php)

GD:  OK

Imagick:  NOT AVAILABLE(See https://www.php.net/manual/en/book.imagick.php)

XMLWriter:  OK

Zip:  OK

下载后解压、配置一个站点,访问:

http://mail.你的域名/installer

进行安装,会自动检测依赖,


安装过程中需要设置的地方:

General configuration区域

product_name:网站名

1.png

Database setup区域:

先创建数据库,再根据实际设置填写

根据实际情况配置数据库

2.png

IMAP:

设置imap_host,username_domain

3.png

SMTP

设置smtp_host

smtp_user/smtp_pass设为空,取消勾选Use the current IMAP username and password for SMTP ....

4.png

语言设置:

5.png

设置好后点创建,将config.inc.php下载下来,并按提示上传到指定目录

6.png


然后点continue

7.png

如果报以下错误:Mimetype to file extension mapping:not ok

8.png

按以上提示下载这个文件,命名为mime.types,并上传到config目录下,修改config.inc.php配置,加入以下内容:

$config['mime_types'] = '/wwwroot/mail.hu-rong.com/config/mime.types';

测试收发
image.png

以上测试是接收可以,但发送失败,查看日志:

tail -f /var/log/maillog

 pop3(hurong): Error: file_dotlock_open(/home/hurong/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1003(hurong) egid=1003(hurong) missing +w perm: /home/hurong/mail/.imap/INBOX, dir owned by 0:0 mode=0755)

通过日志可以看出是权限问题,修改权限:

chown hurong.hurong /home/hurong/ -R

chmod -R 0666 /home/hurong/

service dovecot restart


安装完后删除安装文件防止重复安装,或在配置文件config/config.inc.php中加入:

$config['enable_installer']=false;

或直接删除installer目录


5、虚拟用户配置

先停掉postfix:

service postfix stop

将postfix用户id改为1000

usermod -u 1000 postfix

groupmod -g 1000 postfix

查看修改结果:

id postfix

真实用户邮件目录:

chown -R postfix.postfix /var/spool/mail/


重启

/etc/init.d/postfix restart

/etc/init.d/dovecot restart


赞:(0)
踩:(0)
相关文章
windows下使用MongoDB Compass Com
Oracle VM VirtualBox中设置共享文
linux安装openvpn并保存密码
deepin v20深度系统安装docker及do
域名在阿里云服务器换成腾讯云后备
windows下安装VirtualBox增强工具
国内访问github慢或打不开的解决方
linux下安装phpstorm2018及激活码
vmware中虚拟机上不了网及共享文件
linux版phpstorm2020.3.3及激活码
热门文章
win7中将文件拷贝到虚拟机linux下
phpexcel设置行高及列宽,背景颜色,
rabbitmq无法启动
intellij idea不显示git push按钮
php7中使用mongodb的aggregate进行
laravel页面静态化的方法
centos7.4 64位下swoole安装及配置
navicate连接mycat报1184错误
curl设置超时不起作用(CURLOPT_TIM
devops-jenkins容器为pending状态
好评文章
phpexcel设置行高及列宽,背景颜色,
php7中使用mongodb的aggregate进行
intellij idea打开文件所在文件夹
windows下使用MongoDB Compass Com
win7中将文件拷贝到虚拟机linux下
laravel 中悲观锁 & 乐观锁的使用
单点登录sso原理及php实现方式及de
navicate连接mycat报1184错误
rabbitmq无法启动
laravel整合dingo/api方法步骤:jwt
标签
rabbitmq mysql备份 elasticsearch golang swoole
我的项目
【github】www.github.com/hurong241
【码云】gitee.com/hu_rong/projects
【docker hub】hub.docker.com/repositories/hurong241
【packagist】packagist.org/users/hurong241/packages
站点信息
建站时间:2011年
文章数:623篇
浏览数:1303109
粤ICP备18028092号-1  微信:hurong241