iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >如何使用ubuntu搭建公网个人邮件服务器
  • 576
分享到

如何使用ubuntu搭建公网个人邮件服务器

2023-06-09 13:06:21 576人浏览 安东尼
摘要

这篇文章主要介绍如何使用ubuntu搭建公网个人邮件服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前置条件mysql 数据库。本教程中使用 Mysql 存储域名,用户信息等。域名。需要有域名才能实现向公网发邮件

这篇文章主要介绍如何使用ubuntu搭建公网个人邮件服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

前置条件

  • mysql 数据库。本教程中使用 Mysql 存储域名,用户信息等。

  • 域名。需要有域名才能实现向公网发邮件/收邮件。这里以 test.com 为例。

  • ssl 证书。有不少免费的 ssl 证书提供商,或者使用自签证书,百度即可。

安装软件

切换到 root 用户下,执行以下命令:

apt updateapt install postfix postfix-mysql dovecot-core dovecot-pop3D dovecot-imapd dovecot-lmtpd dovecot-mysql

安装过程中 postfix 会弹出提示:

如何使用ubuntu搭建公网个人邮件服务器

这里我们选择第二项:Internet Site。

接着会有如下提示:

如何使用ubuntu搭建公网个人邮件服务器

这里填入:test.com

配置mx 解析

在域名提供商增加以下解析:

  • MX 记录:test.com 指向 服务器IP

  • A 记录:pop3.test.com 指向 服务器IP

  • A 记录:smtp.test.com 指向 服务器IP

创建 mysql 数据库

新建一个数据库 mailserver,管理账号为:admin/123456

创建虚拟域表,作为认证域。该表是邮件服务器用以接收邮件的域名:

-- 建立表CREATE TABLE `virtual_domains` (`id` INT NOT NULL AUTO_INCREMENT,`name` VARCHAR(50) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入一条记录insert into virtual_domains values(1,'test.com')

创建用户表,用于用户身份认证。

-- 创建用户表CREATE TABLE `virtual_users` (`id` INT NOT NULL AUTO_INCREMENT,`domain_id` INT NOT NULL,`passWord` VARCHAR(106) NOT NULL,`email` VARCHAR(120) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `email` (`email`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入两个用户,以md5加密密码,实际应用中应该选择强度更高的算法,md5目前以及不安全了insert into virtual_users values(1,1,md5('123456'),'first@test.com');insert into virtual_users values(2,1,md5('123456'),'second@test.com');

创建别名表.该表作用相当于当 source 收到邮件时,该邮件会自动转发到 destination 上。

-- 创建表CREATE TABLE `virtual_aliases` (`id` int(11) NOT NULL auto_increment,`domain_id` int(11) NOT NULL,`source` varchar(100) NOT NULL,`destination` varchar(100) NOT NULL,PRIMARY KEY (`id`),FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE)ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 插入数据,所有发给first的邮件都会自动转发给secondinsert into virtual_aliases values(1,1,'first@test.com','second@test.com')

生成 ssl 证书

生成 ssl 证书可参考这一篇https://www.yisu.com/article/60371.htm ,假设证书存放地址为:

  • 公钥 /etc/letsencrypt/live/test.com/fullchain.pem;

  • 私钥 /etc/letsencrypt/live/test.com/privkey.pem;

配置 postfix

首选备份 postfix 的默认配置文件,然后编辑main.cf

cp /etc/postfix/main.cf /etc/postfix/main.cf.bakvim /etc/postfix/main.cf

注释下面的配置:

如何使用ubuntu搭建公网个人邮件服务器

然后加入如下的配置:

# 使用自己的ssl证书smtpd_tls_cert_file=/etc/letsencrypt/live/test.com/fullchain.pemsmtpd_tls_key_file=/etc/letsencrypt/live/test.com/privkey.pemsmtpd_use_tls=yeSSMtpd_tls_auth_only = yes# 使用dovecot来做身份认证smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination

修改 myhostname,myorigin 为如下的值:

myhostname = test.commyorigin = $myhostname

修改 mydestination 值为 localhost,以启动 mysql 中的虚拟域。:

mydestination = localhost

在配置文件的最后加入以下行,确保将邮件投递给 mysql 表中列出的虚拟域。

virtual_transport = lmtp:unix:private/dovecot-lmtp

最后加入以下三项参数,告知 Postfix 配置虚拟域、用户和别名

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cfvirtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cfvirtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

接下来创建上面最后加入的三项参数对应的文件。

创建/etc/postfix/mysql-virtual-mailbox-domains.cf,内容如下:

user = adminpassword = 123456port = 3306hosts = 127.0.0.1dbname = mailserverquery = SELECT 1 FROM virtual_domains WHERE name='%s'

接着重启 postfix,并测试 postfix 能否找到域,如果成功返回 1:

service postfix restartpostmap -q test.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

创建/etc/postfix/mysql-virtual-mailbox-maps.cf,内容如下:

user = adminpassword = 123456port = 3306hosts = 127.0.0.1dbname = mailserverquery = SELECT 1 FROM virtual_users WHERE email='%s'

接着重启 postfix,并测试其能否找到邮箱地址,成功返回 1:

service postfix restartpostmap -q first@test.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

最后创建/etc/postfix/mysql-virtual-alias-maps.cf,内容如下:

user = adminpassword = 123456port = 3306hosts = 127.0.0.1dbname = mailserverquery = SELECT destination FROM virtual_aliases WHERE source='%s'

同样重启 postfix,验证能否正确找到别名,并返回:

service postfix restartpostmap -q first@test.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

如果响应使用 587 端口来进行俺的 smtp 通信,需修改/etc/postfix/master.cf 文件:

取消以下行的注释:

如何使用ubuntu搭建公网个人邮件服务器

配置 dovecot

postfix 配置完毕,现在来配置 dovecot,首先编辑主配置文件/etc/dovecot/dovecot.conf:

首先确保下面一行是启用的:

!include conf.d/*.conf

然后在配置文件的最后加入如下配置,启用各协议:

protocols = imap lmtp pop3

修改/etc/dovecot/conf.d/10-mail.conf,确保存在以下两个配置:

mail_location = maildir:/var/mail/vhosts/%d/%nmail_privileged_group = mail

上面的配置将邮件存放目录设置在/var/mail 中,因此将该文件夹的所属人改为 vmail/vmail.命令如下:

groupadd -g 5000 vmailuseradd -g vmail -u 5000 vmail -d /var/mailchown -R vmail:vmail /var/mail

修改/etc/dovecot/conf.d/10-auth.conf。首先确保如下两个配置存在且值正确:

disable_plaintext_auth = yesauth_mechanisms = plain login

然后修改配置以禁用系统用户登陆,并开启 mysql 支持,如下图所示:

如何使用ubuntu搭建公网个人邮件服务器

修改/etc/dovecot/dovecot-sql.conf.ext文件,将内容改成下面的内容:

passdb {driver = sqlargs = /etc/dovecot/dovecot-sql.conf.ext}userdb {driver = staticargs = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n}

修改/etc/dovecot/dovecot-sql.conf.ext:

首选取消 driver 参数注释并设置为 mysql

driver = mysql

然后取消 connect 行注释并设置为如下内容:

connect = host=127.0.0.1 port=3306 dbname=mailserver user=admin password=123456

接着取消 default_pass_scheme 行的注释并改为 MD5

default_pass_scheme = MD5

接着取消 password_query 行的注释并设置为以下信息:

password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

最后将/etc/dovecot的拥有者改为 vmail:dovecot

chown -R vmail:dovecot /etc/dovecotchmod -R o-rwx /etc/dovecot

修改/etc/dovecot/conf.d/10-master.conf:

首先将 imap-login , pop3-login 下第一个的 port 设置为 0,以禁用非 ssl 加密的 imap 和 pop3 协议,如下图所示:

如何使用ubuntu搭建公网个人邮件服务器

然后找到service lmtp将其修改为如下:

service lmtp {unix_listener /var/spool/postfix/private/dovecot-lmtp {mode = 0600user = postfixgroup = postfix}# Create inet listener only if you can't use the above UNIX Socket#inet_listener lmtp {# Avoid making LMTP visible for the entire internet#address =#port =#}}

然后找到service auth将其内容修改为如下:

service auth {unix_listener /var/spool/postfix/private/auth {mode = 0666user = postfixgroup = postfix}unix_listener auth-userdb {mode = 0600user = vmail#group =}user = dovecot}

最后找到service auth-worker改为如下内容:

service auth-worker {# Auth worker process is run as root by default, so that it can access# /etc/shadow. If this isn't necessary, the user should be changed to# $default_internal_user.user = vmail}

最后要改的就是/etc/dovecot/conf.d/10-ssl.conf,以开启 ssl 认证.

首先将 ssl 参数改为 required:

ssl = required

然后设置 ssl 证书路径就 ok 了,还是用之前的 ssl 证书:

ssl_cert = </etc/letsencrypt/live/test.com/fullchain.pemssl_key = </etc/letsencrypt/live/test.com/privkey.pem

到这里所有的配置都 OK,重启 postfix,dovecot 后就可以用邮箱客户端(比如 foxmail)连接了。

service postfix restartservice dovecot restart

结束

配合一个邮件客户端看似很简单,实际上还是有很多坑的,看看上面那么多的配置项就知道了,一定要耐心。

如果无法登陆,可以看看 postfix 和 dovecot 的日志报错情况,再去修改。日志位置在/var/log

注意:

被这个问题困扰了好几天,未找到解决办法,最后放弃.

目前很多主机厂商都不支持和其他服务器的 25 端口通信,已知的有(谷歌云,阿里云),这样就导致在这些机器上搭建的 postfix 邮件服务器,无法向其他的外网邮箱发送邮件,因为无法和其他 smtp 服务器的 25 端口建立连接。貌似是为了避免有人恶意搭建邮件服务器向其他的邮件服务器发送大量的垃圾邮件,从而导致此服务器 IP 被反垃圾邮件组织列入 SML。

以上是“如何使用ubuntu搭建公网个人邮件服务器”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网服务器频道!

--结束END--

本文标题: 如何使用ubuntu搭建公网个人邮件服务器

本文链接: https://www.lsjlt.com/news/256163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用ubuntu搭建公网个人邮件服务器
    这篇文章主要介绍如何使用ubuntu搭建公网个人邮件服务器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前置条件mysql 数据库。本教程中使用 mysql 存储域名,用户信息等。域名。需要有域名才能实现向公网发邮件...
    99+
    2023-06-09
  • 个人如何搭建云服务器网络
    个人搭建云服务器网络可以分为以下几步: 选择云服务器提供商:选择一个云服务提供商可以提供云服务器、带宽和其他资源的访问和管理,如托管服务、网络服务和安全服务等。 租用云服务器:选择一个可靠的云服务提供商租用云服务器,可以节省购买和维护设...
    99+
    2023-10-26
    服务器 网络
  • 个人如何搭建云服务器网络服务
    选择云服务器提供商:可以选择国内的云服务器提供商,如阿里云、腾讯云、Ucloud等。可以通过搜索引擎或者官方网站了解其服务类型、服务价格、服务质量等信息。 配置云服务器网络服务:在购买云服务器之前,需要配置云服务器的网络服务,可以使用操作...
    99+
    2023-10-27
    网络服务 服务器
  • 个人如何搭建云服务器网络服务器
    选择云计算平台 选择云计算平台的关键是要了解该平台的可靠性、可用性、安全性、数据隐私和性能等方面的特性。AWS (Amazon Web Services)是最受欢迎的云计算平台之一,拥有丰富的服务,包括 Web Services、应用程序...
    99+
    2023-10-27
    服务器 网络
  • 如何用linux搭建邮件服务器为公司降本增效
    这篇文章给大家介绍如何用linux搭建邮件服务器为公司降本增效,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在企业中,节约一分钱比挣一分钱容易得多,这是指导企业降本增效的名言之一啊,作为一名企业里的IT人员我是深有感触...
    99+
    2023-06-05
  • 如何使用云服务器建个人网站
    要使用云服务器建立个人网站,您可以按照以下步骤进行操作:1. 选择云服务提供商:选择一家可靠的云服务提供商。2. 注册云服务器:注册...
    99+
    2023-08-18
    云服务器
  • 1. 使用邮件服务器软件搭建
    选择合适的邮件服务器软件 首先,你需要选择一款适合你需求的邮件服务器软件。常见的邮件服务器软件包括Postfix、Exim、Sendmail等。这些软件都有各自的特点和配置方式,你可以根据自己的需求选择合适的软件。 安装和配置邮件服务器软...
    99+
    2023-10-27
    邮件服务器 软件
  • 个人如何搭建云服务器
    个人搭建云服务器需要注意以下几个方面: 选择合适的云服务器品牌和型号:要根据自己的需要选择合适的品牌和型号,一般选择全新品牌服务器比二手服务器价格更低。 购买云主机和虚拟主机:购买云服务器时,要选择购买云主机和虚拟主机相结合的方式,即购...
    99+
    2023-10-26
    服务器
  • 如何搭建个人云服务器
    搭建个人云服务器需要注意以下几个方面: 选择合适的云服务器服务商:在选择服务商时,应该选择一家拥有强大技术和运营能力的品牌,如AWS、Azure、Google、Facebook Lite等。这些服务商通常都具有强大的安全性和可靠性,能够...
    99+
    2023-10-27
    服务器
  • 个人服务器搭建的网站如何备案
    对个人服务器搭建网站进行备案的方法首先,进入服务器代理商网站,登录到服务管理后台;进入到服务器管理后台后,在服务器列表中查找对应的服务器,点击“管理”;在服务器管理页面中,点击“备案中心”;在备案中心页面中,选择“首次备案”,并点击“注册/...
    99+
    2024-04-02
  • 如何使用阿里云ECS搭建邮件服务器
    本文将详细介绍如何使用阿里云ECS搭建邮件服务器,包括准备工作、配置阿里云邮箱服务器、配置SSL证书、设置邮件转发和自动回复等步骤。 随着互联网的发展,人们对于邮件服务的需求越来越大。对于企业来说,邮件服务器是企业内部沟通的重要工具,也是对...
    99+
    2023-10-29
    阿里 如何使用 邮件服务器
  • 云服务器搭建个人网盘
    1. 选择云服务器 在搭建个人网盘之前,我们需要选择一台云服务器。推荐使用阿里云、腾讯云、华为云等云服务提供商。选择时需要考虑服务器的配置、价格、地域等因素。 2. 安装网盘程序 选择一款适合自己的网盘程序进行安装。常见的网盘程序有Own...
    99+
    2023-10-27
    人网 服务器
  • 如何使用阿里云服务器搭建公网IP
    简介: 本文将详细介绍如何使用阿里云服务器搭建公网IP。包括购买服务器、配置公网IP和设置访问权限等步骤,以帮助读者轻松地在互联网上访问自己的服务器。 正文:一、购买阿里云服务器购买阿里云服务器很简单,只需要登录阿里云官方网站,在首页选择“...
    99+
    2024-01-25
    公网 阿里 如何使用
  • Ubuntu如何使用nginx搭建webdav文件服务器
    这篇文章将为大家详细讲解有关Ubuntu如何使用nginx搭建webdav文件服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。安装nginx注意必须安装nginx-full, 默认的nginx里面并不...
    99+
    2023-06-15
  • 如何在Linux下用SSH搭建个人文件服务器
    这篇文章将为大家详细讲解有关如何在Linux下用SSH搭建个人文件服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。通过 SSH 连接远程 Linux 系统很简单。下面是教程。树莓派是一个有用且价格低廉...
    99+
    2023-06-16
  • 如何在Ubuntu操作系统上搭建个人GitLab服务器
    GitLab是一个开源的源代码管理工具,可以帮助开发者轻松管理代码和项目。它是与GitHub相似的工具,但具有一些独特的特点,例如集成的CI/CD流程和代码自动部署等。虽然有许多在线GitLab服务供应商,但搭建自己的GitLab服务器可以...
    99+
    2023-10-22
  • 如何利用阿里云服务器ECS搭建个人网站
    本文将详细介绍如何使用阿里云服务器ECS搭建个人网站,包括选择合适的服务器配置、安装网站所需软件、设置域名和SSL证书等步骤,以及在搭建过程中可能会遇到的问题和解决方法。 选择合适的服务器配置在选择阿里云服务器ECS时,首先要考虑的是你的网...
    99+
    2024-01-25
    阿里 服务器 网站
  • ubuntu云服务器如何搭建网站
    搭建网站需要以下步骤:1. 购买Ubuntu云服务器。选择合适的云服务器供应商,购买一个Ubuntu操作系统的云服务器。2. 配置服...
    99+
    2023-08-15
    云服务器 ubuntu
  • 个人租用服务器怎么搭建网站
    要搭建一个网站,您需要进行以下步骤:1. 购买服务器:您需要租用一台服务器,可以选择云服务器或者独立服务器。购买服务器的时候需要考虑...
    99+
    2023-06-05
    租用服务器 服务器
  • 如何使用博客系统搭建个人网站
    如何使用博客系统搭建个人网站,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客上的文章通...
    99+
    2023-06-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作