以
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
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
必须安装的扩展:
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:网站名
Database setup区域:
先创建数据库,再根据实际设置填写
根据实际情况配置数据库
IMAP:
设置imap_host,username_domain
SMTP
设置smtp_host
smtp_user/smtp_pass设为空,取消勾选Use the current IMAP username and password for SMTP ....
语言设置:
设置好后点创建,将config.inc.php下载下来,并按提示上传到指定目录
然后点continue
如果报以下错误:Mimetype to file extension mapping:not ok
按以上提示下载这个文件,命名为mime.types,并上传到config目录下,修改config.inc.php配置,加入以下内容:
$config['mime_types'] = '/wwwroot/mail.hu-rong.com/config/mime.types';
测试收发
以上测试是接收可以,但发送失败,查看日志:
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
- 相关文章
- 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
- 我的项目
- 【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