“简单” (总结)

“简单” (总结)

我的 VPS 正在运行 Ubuntu,我希望能够接收发送到我的域名的电子邮件。

我如何轻松设置邮件服务器来执行此操作?

答案1

这是我在生产机器上设置邮件的方式。以下是我们所需的标准:

  • 电子邮件账户
  • 电子邮件别名(转发器)
  • IMAP、POP3 和 SMTP

“简单” (总结)

首先,我想谈谈最容易解决方案。

sudo tasksel install mail-server

当我们尝试这个时,出现了几个问题:首先,它会安装 Dovecot,这对大多数人来说都很好,但我们认为 Courier 是两者中更好的。我们的需求。其次,它利用了 Postfix,这很棒,但我们还需要 Exim,因为它是更强大的 MTA/SMTP 服务器。第三,它安装了 MySQL - 在我使用的配置中,我们更喜欢平面文件配置,因为它的断点更少。想想如果 MySQL 由于某些未知原因崩溃会发生什么。否则,其余的软件包对于小型邮件服务(总共 1-2 个电子邮件域)来说非常简单且易于维护。

我们的配置

目录结构

我们稍微偏离了正常配置的路径,但是这使得管理更容易。

我们所有的邮件都存储在/var/mail/virtual/<domain>/<user>/mail因此,在以后的例子中,我将分别使用[email protected][email protected][email protected]来表示电子邮件地址、要发送到的转发器[email protected]和错误地址。在上面的例子中,它将是/var/mail/virtual/example.com/email/mail

我还维护了服务器上所有域的列表,/etc/valiases但稍后我会详细介绍。

后缀

这或多或少是安装过程中比较简单的部分。只需安装postfix包即可。

进出口

安装 Eximapt-get install exim4 exim4-base exim4-config exim4-daemon-heavy安装后,您需要编辑 exim 默认配置来替换或添加以下值:

domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes

(这些行将出现在文件的不同部分,请相应地替换每一行)

完成后,使用以下命令重建 Exim 配置。update-exim4.conf至此,Exim 所需的更改已完成

导游

安装Courier用这个应该courier-base安装courier-authdaemon,,,,,courier-authlib*courier-imap*courier-pop*courieruserinfocourier-ssl

说实话,除了标准之外,没有太多配置。你只需要创建一个用户数据库。

帐户

Exim 和 Courier 检查几个地方以查看登录或收到的电子邮件是否有效。Exim 检查域名是否列为本地主机名,或者域名是否在/var/mail/virtual或域名是否在/etc/valiases

创建电子邮件账户

我最终创建了几个工具来简化这个过程 - 但添加新用户需要遵循以下原则:

mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/

然后将地址添加到 courier userdb - 以便他们可以登录

userdb [email protected] set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail

确保在适当的地方替换值。此外 -uidgid 需要作为邮件用户的数字用户/组 ID。

userdbpw -md5 | userdb [email protected] set systempw

这将提示您输入密码,请输入您想要用于该帐户的密码。

makeuserdb

最后,生成 userdb hash/shadow 文件。重启 Courier 并测试更改是否有效:

authtest [email protected]

应该产生类似的东西

Authentication succeeded.

     Authenticated: [email protected]  (uid 8, gid 8)
    Home Directory: /var/mail/virtual/example.com/email
           Maildir: /var/mail/virtual/example.com/email/mail
             Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
           Options: (none)

如果您看到“身份验证失败:操作不允许”,请编辑 /etc/courier/authdaemonrc 并将 authuserdb 添加到 authmodulelist 行。

所有测试确认无误后,重新启动所涉及的各项服务(courier-authdaemonexim4),打开端口 143、25、586、495、110,并在您最喜欢的邮件客户端中设置帐户。

创建电子邮件别名

对于每个域,您应该创建一个文件/etc/valiases(如果不存在则创建),其中至少包含以下行:

*: :fail: No user at this address.

这句话的意思:如果收到的邮件与我存档的任何电子邮件帐户都不匹配 - 那么邮件应该失败并被退回,并显示一条消息:“此地址没有用户”。因此,所有发送到以下地址的邮件[email protected]都会被退回,因为失败。

然而,我们有几个电子邮件地址希望在其他地方保留 - 比如[电子邮件保护]- 为了做到这一点,我们需要创建/etc/valiases/example.com文件,其内容如下:

fwd: [email protected]
*: :fail: No user at this address.

这样一来,即使[电子邮件保护]与服务器上的任何电子邮件帐户都不匹配,但它在文件中匹配/etc/valiases,并且邮件将被转发到[电子邮件保护]- 然而,[电子邮件保护]仍然会失败并显示“此地址没有用户”消息。

答案2

最简单的方法是运行sudo tasksel install mail-server。这将为您提供具有合理默认值的电子邮件服务器。您所要做的就是回答几个问题。显然,如果有必要,您仍然可以在之后进行手动配置,但在大多数情况下不需要。只需按照屏幕上的说明进行操作即可。

不过,阅读有关电子邮件服务管理的知识是绝对值得推荐的。

官方参考:

答案3

我没有“很好的答案”,但你可能会发现这些链接很有帮助https://help.ubuntu.com/community/PostfixBasicSetupHowto#Receiving邮件和https://help.ubuntu.com/community/Postfix

答案4

我自己也做过这个,你确实需要 postfix,而且就我而言,我还想要一个 imap 服务器,这样我就可以在另一台机器上使用一个不错的 gui 客户端(不提任何名字)。我使用了这些文档:

后缀

多夫科特(imap 和 pop3)

它实际上非常简单,几分钟内就可以启动并运行,并且可以收到电子邮件。这对于检查一切是否设置正确也很有用可 ping 性

哦,当然,您必须按照如下所示正确设置您的 DNS 条目(基于对我有用的设置):

name   type   content
  @      A     ???.???.??.??    
mail     A     ???.???.??.??

         MX Records
Name                 Priority
mail.mydomain.com.      1
mail2.mydomain.com.     2

注意邮件服务器末尾的句号,并在适当的位置插入您的 IP 地址和域名。

相关内容