基于腾讯云主机CentOS搭建邮件收发服务器

基于腾讯云主机CentOS搭建邮件收发服务器


DATE: 2017-09-04 18:42:54

搭建 Postfix、Dovecot 邮件服务 准备域名 任务时间:15min ~ 20min

域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频。

视频 - 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:

<您的 CVM IP 地址> 在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频:

视频 - 如何在腾讯云上解析域名 完成该实验共需要添加两条记录:

A 记录 记录类型:A

主机记录:@

记录值:<您的 CVM IP 地址>

MX 记录 记录类型:A

主机记录:@

记录值:yourdomain.com(替换为自己域名)

生效检查 域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 [?],如:

ping yourdomain.com 如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。

(使用 ctrl + c 停止)

检查 MX 记录 替换下面命令中的 yourdomain.com 为您自己的注册的域名:

nslookup -q=mx yourdomain.com 如果 nslookup 命令返回的信息中含有你设置的域名的记录值,说明解析成功。

注意替换下面命令中的 yourdomain.com 为您自己的注册的域名

实验之前 任务时间:5min

配置一个功能完善的邮件服务器并不是一项容易的工作,本实验只是搭建了一个简单的邮件服务器,一些更为强大的功能还需要你去探索。

Postfix、Dovecot 简介 Postfix Postfix 是一个标准的 MTA「Mail Transfer Agent」服务器,它负责通过 SMTP 协议管理发送到本机的邮件以及由本机发向外界的邮件。

Dovecot Dovecot 是一个优秀的 IMAP/POP 服务器用以接收外界发送到本机的邮件。

Postfix、Dovecot 安装 在 CentOS 7 上,我们可以直接使用 yum 进行下载安装:

yum -y install postfix dovecot Postfix 任务时间:5min ~ 10min

配置 Postfix 有关教程中配置参数的具体含义,请参照 Postfix 配置文档。

配置 在终端中输入以下命令以修改 Postfix 相关配置,请记得将 yourdomain.com 替换为你自己的域名:

postconf -e 'myhostname = server.yourdomain.com' postconf -e 'mydestination = localhost, localhost.localdomain' postconf -e 'myorigin = $mydomain' postconf -e 'mynetworks = 127.0.0.0/8' postconf -e 'inet_interfaces = all' postconf -e 'inet_protocols = all' postconf -e 'mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain' postconf -e 'home_mailbox = Maildir/' postconf -e 'smtpd_sasl_type = dovecot' postconf -e 'smtpd_sasl_path = private/auth' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_sasl_authenticated_header = yes' postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem' postconf -e 'smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem' 配置中 Postfix 使用 sasl 和 tls 来完成身份认证和传输信息加密。

试验中使用了 Dovecot 默认的 ssl 证书和私钥,如果你需要修改为自己的,请替换最后两行配置的路径。

配置 smtps 部分邮件客户端依赖于使用 465 端口提供加密连接,所以我们修改配置,允许 Postfix 使用 465 端口发送邮件。

打开 /etc/postfix/master.cf 文件,将如下两行前的 # 去除:

smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes 然后 ctrl + s 保存文件。

启动 使用以下命令,将 Postfix 设为自动启动并首次启动该服务:

systemctl enable postfix.service systemctl start postfix.service Postfix 日志 Postfix 系统的日志文件在系统的这个目录下的 /var/log/maillog 文件,此文件记录了 Postfix 服务器的运行状态信息。

Dovecot 任务时间:5min ~ 10min

配置 Dovecot 修改 dovecot.conf 打开 /etc/dovecot/dovecot.conf 文件,在最下方加入以下配置:

示例代码:/etc/dovecot/dovecot.conf ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem

protocols = imap pop3 lmtp listen = * mail_location = Maildir:~/Maildir disable_plaintext_auth = no 如果前面你修改为了自己的 ssl 证书和私钥,请替换开始两行配置的路径。

然后 ctrl + s 保存文件。

修改 10-master.conf 打开 /etc/dovecot/conf.d/10-master.conf 文件,在最下方加入以下配置:

找到 service auth 部分,将以下行前面的 # 去除:

unix_listener /var/spool/postfix/private/auth {
mode = 0666
} 然后 ctrl + s 保存文件。

启动 Dovecot 使用以下命令,将 Dovecot 设为自动启动并首次启动该服务:

systemctl enable dovecot.service systemctl start dovecot.service 查看 /var/log/maillog 文件,查看服务是否成功启动。

如成功启动,日志里应包含如下信息:

Jun 26 12:00:28 localhost postfix/postfix-script[28338]: starting the Postfix mail system Jun 26 12:00:29 localhost postfix/master[28340]: daemon started -- version 2.10.1, configuration /etc/postfix Jun 26 12:28:40 localhost dovecot: master: Dovecot v2.2.10 starting up for imap, pop3, lmtp (core dumps disabled) 创建账户 任务时间:5min ~ 10min

该配置下邮箱账户依赖于系统用户,所以通过添加系统用户的方式创建邮箱账户。

添加用户 在终端中使用 useradd 命令添加用户:

useradd test 使用 passwd 命令设置对应用户密码:

passwd test 测试 任务时间:10min ~ 15min

如测试中遇到异常,请查看 maillog 日志文件中的错误信息。

服务器端发送测试 使用 su 命令切换用户:

su test 我们可以使用 mail 命令发送邮件,将 xxxx@xxx.com 替换为你的其他邮箱。

echo "Mail Content" | mail -s "Mail Subject" xxxx@xxx.com 然后可以前往你的接收方邮箱查收。

邮件客户端 你可以将该邮箱账户添加至邮件客户端使用,推荐使用 Foxmail 客户端。

可以参考以下配置进行设置:

服务器类型:POP3 邮箱账户: test@yourdomain.com

收件(POP3)服务器: yourdomain.com 端口: 995 安全连接(SSL): 用户名: test 密码: test用户密码

发件(SMTP)服务器: yourdomain.com 端口: 465 安全连接(SSL): 用户名: test 密码: test用户密码 然后就可以使用邮件客户端通过该账户收发邮件了。

(该配置在某些邮件客户端下可能因为使用了通用证书而出现使用异常)

版权声明

翼安博客


首发 翼安博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
Git for windows 修改Home路径(版本号:2.14)
前人留下的网络资料有解决1.9版本的这个问题,但对2.14版本已经不再适用。前人资料:http://www.cnblogs.com/fenpho/p/6208896.htmlhttp://www.cnblogs.com/xunzhiyou/p/5028789.html实际操作后,修改/etc/profile文件后,重新开始GitBash并没有生效。由于Git的默认路径在C:\Users\Admin
494

thinkphp6设置Content-type解决header添加不生效问题
thinkphp6设置Content-type解决header添加不生效问题原生php只需要加入header就可以实现输出各种格式的文件内容,如header("Content-type:text/css");然而,在thinkphp6中却不能生效。response总会自动的将内容以网页的形式输出。即自动添加<html>、<body>等标签,无法达到预期的效果。tp6框架中提
4999

每天上班都像上坟一样难受,怎么办?三条妙招让上班像踏青
经常听到身边有些朋友抱怨,说每天上班的心情就想上坟。然而,真是如此么?小编相信,每位上班像上坟的朋友,身边不会缺少这样的朋友:每天上班精神抖擞,很有干劲,心情愉悦就像是来踏青一样。他们是怎么做到的呢?其实,上班不愉快无非就是上班时心情不好,感觉焦虑。要知道,这些都是可以解决的!人的一生,就是适应、利用、创造法则的一生。法则就是自然法则、社会秩序和公司规章制度。最无力的时候只能去学习、适应法则,成长
3185

CSDN-markdown编辑器示意效果
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗Ctrl+B斜体Ctrl+I引用Ctrl+Q插入链接Ctrl+L插入代码Ctrl+K插入图片Ctrl
1426

php开发遇到的Access denied for user
php开发遇到的Accessdeniedforuser'root'@'localhost'(usingpassword:NO)首发:2017-09-2413:44:38环境:CentOS6.5+php5.3.3在php开发过程中,我遇到了一个问题:在命令行中登录Mysql完全正常,然而PHP代码读取数据库却出了问题。报错如下:Accessdeniedforuser'root'@'localhost
3235

Linux环境C C++起Socket Server监听8080端口的代码实现
代码抄录自《UNUX网络编程卷一》,在实现开发环境中调试通过,经测试发现可以正常监听。(2017-09-0621:56:31)开发环境:CentOS,g++,VIM功能:C++实现Socket通信的Server端,实现监听8080端口接收到的消息。#include#include/*SeeNOTES*/#include#include#include#include#include#include
2724

CentOS 系统简易搭建FTP服务(四步足矣)
本文作者之前在CSDN发过(2017-09-0313:09:28),现在入驻本站。网上有很多的FTP搭建步骤,但普遍很繁琐,个人临时使用太麻烦。本次实验使用腾讯云服务器CentOS简易搭建FTP服务器,四行命令足矣完成基本使命。yuminstallvsftpdservicevsftpdstartuseradd-m-d/home/uftp-s/sbin/nologinuftppasswduftp目前
2498

linux中查看C C++程序或调用其中某个函数(类)消耗内存的方法实现
验证C/C++程序或调用其中某个函数(类)消耗内存的方法:获取进程ID,调用/proc/[pid]/status查看消耗的内存页(4KB/内存页)进程ID获取方法UNIX环境高级编程中提到的getpid(),可以获取。头文件``查看内存信息sprintf(FILE_NAME,"/proc/%d/statm",pid);FILE*fp=fopen(FILE_NAME,"r");fscanf(fp,"
2610

Linux(Android)系统Root实现原理
方案主旨思想是查找系统漏洞,让本身具有root权限的进程执行打开root权限的操作。重烧engboot.img方案Android版本有user版本和eng版本的区别,其中eng版本可以用于开发调试,所以本身可以开启root权限。通过重烧engboot.img版本来获取root权限。这个原理理解起来很简单,原理章节不再详述。死锁问题root需要考虑两个问题:(1)root权限的获取;(2)root权
2988

Ubuntu中Apache2启动失败报错Job for apache2.service failed because the cont...
Ubuntu中Apache2启动失败报错Jobforapache2.servicefailedbecausethecont...为解决这个问题,花了一个下午,参考了120多条网络博文,很有成就感。但实际上是由于一个简单的配置原因导致的问题,希望以后可以更加细心。-最初的现象,php代码没有解析phpinfo输出内容是显然,只是代码,并没有成功解析php代码。事后分析,是Apache2服务的问题。-
3515

wordpress安装访客统计插件(WP-PostViews)
wordpress安装访客统计插件(WP-PostViews)DATE:2017-09-2621:08:41参考网络资料知道,安装WP-PostViews可以解决无法统计访客数量的问题。但,网络资料提及的插件安装方法却都没能成功。原因是,网络教材都说在wordpress管理后台搜索插件,但我却没有找到。找不到WP-PostViewswordpress后台搜索不到插件后来发现可在此网站下载安装:ht
1364

wordpress出现Error establishing a database connection
wordpress出现ErrorestablishingadatabaseconnectionDATE:2017-09-2419:27:33这个问题的原因是网站调用数据库的配置文件没有配置正确,无法正常调用Mysql。解决方法是配置wordpress目录下的wp-config.php文件。需要修改的有以下几个参数:参数说明示例database_name_here数据库名wordpressusern
1480