如何在 Ubuntu 上安装和配置 Dovecot

2023-10-30

Dovecot 是一款开源 IMAP 和 POP3 电子邮件服务器,因其可靠性、可扩展性和易用性而被广泛使用。 POP3(邮局协议 3)和 IMAP(互联网消息访问协议)都是用作消息访问代理的协议。这些协议用于从邮件服务器上的用户收件箱中获取电子邮件。简而言之,POP3 和 IMAP 负责从邮箱中获取邮件并将其显示在您的移动设备或 Web 界面上。

在本文中,我们将指导您完成在 Ubuntu 系统上安装和配置 Dovecot 的过程。

先决条件

  • 正在运行的 Ubuntu 系统
  • 预先配置的邮件服务器和用户邮箱
  • 使用 root 或 sudo 特权帐户进行 shell 访问

第 1 步:在 Ubuntu 上安装 Dovecot

基于 Debian 的系统具有用于 IMAP 和 POP3 协议的单独的 Dovecot 软件包。要安装支持 POP3 和 IMAP 功能的 Dovecot 服务器,请运行以下命令:

sudo apt update 
sudo apt install dovecot-imapd dovecot-pop3d 

这将安装 Dovecot 的核心组件以及 IMAP 和 POP3 协议。 dovecot-core 包提供了核心 Dovecot 服务器,而达夫科特-imapd and dovecot-pop3d包提供支持IMAP and POP3协议,分别。

您还可以安装各种 Dovecot 模块,例如 MySQL 和 PostgreSQL 数据库支持、邮件过滤、全文搜索、垃圾邮件过滤器培训和 LDAP 目录。要安装附加模块,请运行:

sudo apt install dovecot-sieve dovecot-solr dovecot-antispam 

第 2 步:配置 Dovecot

默认的 Dovecot 配置文件位于 /etc/dovecot/dovecot.conf。在对此文件进行任何更改之前,最好创建一个备份副本。为此,请运行以下命令:

sudo cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak 

Dovecot 配置文件相当广泛,因此我们将重点关注一些最重要的设置。

  1. 启用协议
  2. 默认情况下,Dovecot 在主配置文件中启用了 POP3 和 IMAP 协议。您可以编辑主配置文件并查看:

    sudo nano /etc/dovecot/dovecot.conf 
    

    从配置文件中取消注释以下条目。

    1
    !包含尝试 /usr/share/dovecot/协议.d/*。协议

  3. 配置身份验证
  4. 您需要配置的首要设置之一是身份验证。 Dovecot 支持多种身份验证机制,包括纯文本、CRAM-MD5 和 OAuth2。要启用身份验证,请取消注释以下行“/etc/dovecot/dovecot.conf”配置文件:

    1
    !include auth-system.conf.ext

    保存文件并关闭它。

    然后编辑 Dovecot 的身份验证文件并更新以下值。

    sudo nano /etc/dovecot/conf.d/10-auth.conf 
    
    1
    2
    禁用_明文_验证 = no
    授权机制 = plain login

  5. 监听接口
  6. 默认情况下,Dovecot 监听所有接口,包括 IPV6。但如果您需要将它们限制为特定的界面编辑:

    sudo nano /etc/dovecot/dovecot.conf 
    
    1
    listen = *, ::

    将“*”替换为接口IP,例如“192.168.1.10”

  7. 配置邮箱位置
  8. 默认情况下,Dovecot 将用户邮箱存储在 /var/mail 中。如果您希望将邮箱存储在其他位置,可以修改配置文件中的 mail_location 设置。

    sudo nano /etc/dovecot/conf.d/10-mail.conf 
    

    例如,如果要将邮箱存储在 /home/Maildir 中,可以将以下行添加到配置文件中:

    1
    邮件位置 = maildir:~/Maildir

  9. 设置用户
  10. 接下来,编辑以下配置文件并设置运行的邮件服务器的用户名和组名。

    sudo nano /etc/dovecot/conf.d/10-master.conf 
    
    1
    2
    3
    4
    5
      unix_监听器 /var/spool/postfix/private/auth {
        mode = 0666
        user = postfix
        group = postfix
      }

  11. 启用 SSL/TLS
  12. 为了保护电子邮件通信的安全,您应该启用 SSL/TLS 加密。为此,请打开/etc/dovecot/conf.d/10-ssl.conf文件并进行以下更改:

    sudo nano /etc/dovecot/conf.d/10-ssl.conf 
    
    1
    2
    3
    ssl = yes
    ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
    ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key

    这些设置启用 SSL/TLS 加密并指定 SSL 证书和密钥文件的位置。在此示例中,我们使用 Ubuntu 附带的默认自签名证书。

第 3 步:启动并启用 Dovecot

完成 Dovecot 的配置后,您可以使用以下命令启动 Dovecot 服务:

sudo systemctl start dovecot 

要确保 Dovecot 在引导时自动启动,请运行以下命令:

sudo systemctl enable dovecot 

这将使 Dovecot 在系统启动时自动启动。

第4步:测试配置

要测试 Dovecot 安装是否正常工作,您可以使用电子邮件客户端,例如 Thunderbird 或 Outlook。您需要配置电子邮件客户端以使用 IMAP 或 POP3 协议连接到 Dovecot 服务器,具体取决于您在配置文件中启用的协议。

配置电子邮件客户端时,请确保使用正确的服务器主机名和端口号。默认情况下,Dovecot 在端口 143 上侦听 IMAP,在端口 110 上侦听 POP3。如果启用了 SSL/TLS 加密,则需要使用启用了 SSL 的端口,对于 IMAP 为 993,对于 POP3 为 995。

为了测试这个设置,我在 Ubuntu 系统上创建了一个名为“rahul”的帐户。这mboxPostfix 服务器上的设置配置为〜/邮件目录目录。

接下来,您需要一个 mutt 命令行实用程序来使用 IMAP 协议连接邮箱。

sudo apt install mutt 

然后使用以下命令连接到邮箱:

mutt -f imaps://rahul@localhost 

这将提示接受证书(按a总是接受)。之后,它会提示输入密码。输入用户密码并按 Enter 键。您将看到您帐户的电子邮件。

第 5 步:使用 FirewallD 打开端口

对于运行防火墙的系统,需要允许以下端口以允许从网络访问。以下是 POP3 和 IMAP 协议使用的端口列表:

  • IMAP – 143
  • IMAPS – 993
  • POP3 – 110
  • POP3S – 995

要添加防火墙规则,请执行以下命令:

sudo firewall-cmd --add-service={pop3,imap} --permanent 
sudo firewall-cmd --add-service={pop3s,imaps} --permanent 

然后重新加载更改。

sudo firewall-cmd --reload 

结论

在本文中,我们向您展示了如何在 Ubuntu 上安装和配置 Dovecot。通过执行这些步骤,您现在应该拥有一个功能齐全的电子邮件服务器,它支持 IMAP 和 POP3 协议,并提供 SSL/TLS 加密以实现安全通信。 Dovecot 是一款功能强大且灵活的电子邮件服务器,可以进行自定义以满足几乎任何组织的需求,因此请随意尝试设置以找到最适合您的配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 上安装和配置 Dovecot 的相关文章

  • PHP中使用IMAP()获取最近未读邮件数

    我正在努力得到不 来自 gmail 帐户的最近未读邮件 为此 我在 Ubuntu 系统中安装了 IMAP 并尝试了一些 PHP iMAP 功能 这是我到目前为止所尝试过的 connect to gmail hostname imap gma
  • imap:从 C++ 程序发送电子邮件时“无法创建可选择的 TCP 套接字”

    我正在尝试使用 imap 库从 C 程序发送电子邮件 我有一个 Google Apps 和一个要向其发送电子邮件的 Gmail 帐户 每当程序无法发送电子邮件时 我都会将错误记录到文件中 我将程序设置为循环运行以发送电子邮件 有时 我收不到
  • 具有多个 OR 参数的 imap 搜索语法

    我正在使用 Ruby 2 5 3 和邮件 gem 2 7 1 我正在构造 IMAP 搜索命令来检索给定电子邮件地址列表和各种自日期的电子邮件 它是搜索电子邮件地址的逻辑或 我正在使用这个 email filter OR FROM email
  • 如何将邮件标记为已读,\在 IMAP 上看到(转到)

    我正在尝试将消息 消息列表标记为 SEEN https www rfc editor org rfc rfc3501 page 11 永久 使用IMAP https godoc org code google com p go imap g
  • 如何通过 OpenSSL 在 Shell 中与 IMAP 服务器通信

    我想通过 Mac OS X 终端向服务器发送 IMAP 命令并获得响应 我可以使用此行连接到服务器 openssl s client connect imap gmail com 993 我可以成功登录 LOGIN m client2 pa
  • 为什么我无法在 Python 中两次登录 imap 服务器

    正如下面的错误消息所示 我无法登录 因为我处于 LOGOUT 状态而不是 NONAUTH 状态 如何从 LOGOUT 转到 NONAUTH 下面的示例 显然下面的登录凭据是伪造的 Python 2 7 3 default Aug 1 201
  • 用于读取电子邮件的 PHP 库

    我目前使用 SwiftMailer 库send电子邮件 但不幸的是它只能发送 不能接收 我想知道 是否有一个类似的库可以通过 IMAP 连接到电子邮件帐户并阅读电子邮件 IE 使我能够循环浏览电子邮件 我知道这里有一组 PHP IMAP 函
  • 如何获取 Gmail 未读邮件数

    我使用以下代码来获取 Gmail 中的未读电子邮件计数 但是 它返回错误 can t connect Too many login failures 我在这里缺少什么吗 我正在测试的 Gmail 帐户中启用了 IMAP 和 POP NOTE
  • Imap 搜索条件 - imaplib (python)

    我正在使用 python 的 imaplib 并且遇到了一个奇怪的行为 我真的不知道这是否是 imap 或 imaplib 问题 功能 所以我希望有人能给我一些启发 在我的项目期间 我对我的 Gmail 邮箱进行了多次搜索 想象一下我使用以
  • Python 3 imaplib.fetch TypeError:无法将字节连接到 int

    我有一些代码可以获取 IMAP 电子邮件 并且在 Python 2 中运行得很好 在 Python3 中 我收到以下错误 回溯 最近一次调用最后一次 文件 mail py 第 295 行 位于项目 返回消息 x 文件 mail py 第 1
  • 使用 php 从 POP3 服务器获取邮件

    我正在尝试从 POP3 获取邮件 我正在使用 POP3 邮件服务器 并且我正在尝试获取邮件内容并将其存储到我的项目的数据库表中 但我找不到任何 PHP 脚本 全部仅适用于 IMAP 您知道如何从 POP3 服务器获取邮件吗 Thanks 有
  • 如何通过代理通过 POP 或 IMAP 获取电子邮件?

    poplib 或 imaplib 似乎都不提供代理支持 尽管我尝试了 google fu 但我找不到太多有关它的信息 我正在使用 python 从各种支持 imap pop 的服务器获取电子邮件 并且需要能够通过代理来完成此操作 理想情况下
  • 使用 Ruby 生成 Gmail IMAP 访问的 SASL XOAUTH2 客户端响应

    我正在尝试使用 Ruby 中的 XOAUTH2 通过 IMAP 访问我的 Gmail 电子邮件 我已通过使用 OAuth 2 0 进行身份验证 成功生成了访问令牌 和刷新令牌 oauth2 https github com intridea
  • [outlook]:通过node-imap连接时登录失败

    我试图在本地主机中连接 Imap 但得到如下调试日志 但用户名和密码是正确的 我可以通过网络界面使用登录凭据进行连接 lt CAPABILITY IMAP4 IMAP4rev1 AUTH PLAIN AUTH XOAUTH2 SASL IR
  • 如何使用 OAUTH2 从 Java 访问 Outlook.office365.com IMAP?

    由于 Microsoft 宣布很快将无法再通过基本身份验证访问 Outlook IMAP 邮箱 因此我正在尝试弄清楚如何在 Java 中使用 OAUTH2 正确打开 IMAP 邮箱 但我总是收到错误代码 A1 NO AUTHENTICATE
  • 如何在 C# 中保存电子邮件附件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何使用 C 从我的邮件 例如 gm
  • 使用 XOAUTH IMAP 访问 Gmail 收件箱

    我正在关注example http code google com p google mail xoauth tools source browse trunk python xoauth py 我已经授权了我的应用程序 获得了访问令牌 但
  • 无法在 Android 上使用 XOAUTH 连接到 Gmail IMAP

    我正在构建一个使用 Gmail 来备份一些数据的应用程序 我使用 XOAUTH 连接到 Gmail 并获取令牌和秘密 但我无法连接到 Gmail 的 IMAP 服务 我按照以下示例进行操作http code google com p goo
  • 我应该在哪里划清词法分析器和解析器之间的界限?

    我正在为 IMAP 协议编写一个词法分析器 用于教育目的 但我很困惑应该在词法分析器和解析器之间划清界限 以 IMAP 服务器响应为例 FLAGS Answered Deleted 该响应的正式语法定义如下 mailbox data FLA
  • 跨平台 C++ IMAP 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何可以从 C 使用的跨平台 仅对 Windows 和 OS X 感兴趣 IMAP 库 最好也是

随机推荐

  • 腾讯云服务器+ContOS 7.6安装MySql(一)

    腾讯云服务器 ContOS 7 6安装MySql 本地远程登录 近日斥巨资采购了一台腾讯腾讯轻量云服务器 2CPU2G内存5M带宽包月500G的 价格是398一年 买的时候刚好618活动吗 不然还得更贵 这都是题外话 先来看一下买好的服务器
  • MySQL学习笔记(基础篇)

    一 SQL语言的规则与规范 1 SQL大小写规范 建议遵守 MySQL 在 Windows 环境下是大小写不敏感 推荐采用统一的书写规范 数据库名 表名 表别名 字段名 字段别名等都小写 SQL 关键字 函数名 绑定变量等都大写 2 注释
  • spark端口作用配置及修改

    spark端口作用配置及修改 Master节点的web端口是8080 仅在 standalone模式使 配置方式在spark env sh加一行 export SPARK MASTER WEBUI PORT 8080 work节点的web端
  • 汇编指令对应的十六进制表示

    空 nop jmp 32位立即数 jmp a E9 a jmp 内存地址 jmp 0x8d8d3a FF25 0x8d8d3a jmp far 内存地址 jmp far 0x8d8d3a FF2D 0x8d8d3a 直接远跳 jmp 0x8
  • 外键SQL语句的编写

    学习目标 能够写出删除外键约束的SQL语句 1 外键约束作用 外键约束 对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证 数据如果不合法则更新和插入会失败 保证数据的有效性 2 对于已经存在的字段添加外键约束 为cls id字段
  • chatGPT之Python API启用上下文管理

    chatGPT已经爆火一段时间了 我想大多数的开发者都在默默的在开发和测试当中 可能也是因为这个原因所以现在很难找到关于开发中遇到的一些坑或者方法和技巧 为什么别人的机器人能联想之前的语料 而你的却像个每次都只如初见的高冷机器人 我也是参考
  • vue 开发插件二

    接上一篇 vue 开发插件 一 完善插件交互逻辑 插件讲究高度配置化 弹框提示的插件要始终保持一个 并且要保证上一个弹框已经关闭 处理配置参数 定义一个方法来接受弹框内容和配置进行处理参数 并且有默认的参数 同时判断显示隐藏 如果只是传入一
  • QT_QPalette、背景颜色

    catalog 设置主 子widget背景颜色 Obsolete setColor setBrush 设置背景颜色 设置主 子widget背景颜色 this palette setColor QPalette Window QColor r
  • 内部类访问权限

    内部类 一种隐藏和组织代码的模式 1 普通内部类拥有其外围类的所有元素的访问权 没有任何限制 2 静态内部类只能访问外部类的静态成员变量 class Outer static int x static class Inner void te
  • jQuery手记 —— jQuery 中 .attr() .prop() .data() 的区别

    未完待续
  • sed 将文件中的某一列与另一列互换

    使用sed 将文件中的某一列与另一列互换 我们将一个文件中的第1列和第2列互换 其实就是将每行的第1个字符和第2个字符互换 步骤 1 将每行文本拆分为 第1个字符 第2个字符 剩下的所有字符 三个部分 2 然后通过替换操作重排顺序为 2 1
  • WebMvcConfigurer实现跨域请求

    添加一个配置类WebMvcConfiguration 在类上添加 Configuration注解 实现WebMvcConfigurer Configuration public class WebMvcConfiguration imple
  • C#中Replace的用法

    使用sql replace 需要替换的 替换用的字段 var replace hello welcome to New York city Console WriteLine replace var chang replace Replac
  • 书签列表

    我自己的书签列表 guid root title index 0 dateAdded 1638246398224000 lastModified 1693836173694000 id 1 typeCode 2 type text x mo
  • 怎么把计算机上打印任务解除,如何终止打印机任务_如何停止打印机任务-win7之家...

    我们在使用打印的时候 会遇到打印机卡纸或者没纸的情况 但是打印机任务还在继续 是需要把打印任务给停止了 但有些用户还是不会终止打印任务 那么要如何终止打印机任务呢 下面小编给大家分享停止打印机任务的方法步骤 解决方法 方法一 1 右键点击桌
  • LoadRunner获取登录验证码

    原理很简单 用一个请求去刷新认证码返回页面 然后通过关联将返回的图片保存为硬盘的一个文件 然后用ocr去识别这个文件内容 保存结果到txt 最后用LR读这个文本就可以得到认证码 方法都是在网上搜的 但是本人经过实验验证成功了 代码如下 Ac
  • keyError:255 (Python连接数据库时)出错的解决办法:

    用Python连接数据库时的出现错误 解决办法 把pymysql包升级一下就好了 如果是用anaconda安装的Python 则在相应的环境中把pymysql 更新 update 一下
  • 如何在 AWS 实例上设置 WHM 和 cPanel

    WHM cPanel 是广泛用于 Linux 托管环境的基于 Web 的系统管理控制面板 要在AWS环境上使用WHM cPanel 我们将面临正常实例的问题 因此 我们更喜欢在aws中使用VPC 虚拟私有云 来安装WHM和cPanel服务器
  • 如何在 Debian 10 上安装 Google Cloud SDK

    谷歌云SDK提供了一组用于管理 Google Cloud Platform GCP 上托管的资源的工具 Cloud SDK 软件开发工具包 提供 gcloud gsutil 和 nd bq 命令 能够通过终端访问 Google Cloud
  • 如何在 Ubuntu 上安装和配置 Dovecot

    Dovecot 是一款开源 IMAP 和 POP3 电子邮件服务器 因其可靠性 可扩展性和易用性而被广泛使用 POP3 邮局协议 3 和 IMAP 互联网消息访问协议 都是用作消息访问代理的协议 这些协议用于从邮件服务器上的用户收件箱中获取