当前位置: 首页>>技术教程>>正文


如何设置电子邮件服务器?

, ,

问题描述

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

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

最佳解决办法

这就是我在生产机器上设置邮件的方式。这些是我们需要的标准:

  • 电邮帐户

  • 电子邮件别名(转发器)

  • IMAP,POP3和SMTP

“Easy”(长话短说)

首先,我想解决看似最简单的解决方案。

sudo tasksel install mail-server

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

我们的配置

目录结构

我们略微偏离正常配置的路径,但它使管理更容易。

我们所有的邮件都存储在/var/mail/virtual/<domain>/<user>/mail中。为了将来的例子,我将使用email@example.comfwd@example.comfoo@example.com来表示电子邮件地址,转发到example@gmail.com的转发器和一个错误的地址。在上面的例子中,它将是/var/mail/virtual/example.com/email/mail

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

Postfix

这或多或少是设置的简单部分。只需安装postfix软件包即可。

Exim

使用apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy安装Exim安装完成后,您需要编辑exim默认配置以替换或添加以下值:

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

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

一旦完成重建使用update-exim4.conf进行exim配置这就结束了Exim所需的更改

Courier

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

老实说,标准之外的配置并不多。您只需要创建一个用户数据库。

Accounts

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@example.com 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@example.com set systempw

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

makeuserdb

最后,生成userdb哈希/影子文件。重新启动Courier并测试您的更改是否有效:

authtest email@example.com

应该产生类似的东西

Authentication succeeded.

     Authenticated: email@example.com  (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)

如果您看到“Authentication FAILED:Operation not allowed”,请编辑/etc /courier /authdaemonrc并将authuserdb添加到authmodulelist行。

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

创建电子邮件别名

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

*: :fail: No user at this address.

这样说:如果收到的邮件与我存档的任何电子邮件帐户都不匹配,那么邮件应该失败并退回并显示一条消息:“此地址没有用户”。所以发送的所有邮件都说:foo@example.com会因为失败而被退回。

但是,我们希望在其他地方保留一些电子邮件地址 – 例如example@gmail.com – 为了这样做,我们需要创建/etc/valiases/example.com,文件内容应如下所示:

fwd: example@gmail.com
*: :fail: No user at this address.

这样,即使fwd@example.com与服务器上的任何电子邮件帐户都不匹配,它也会在/etc/valiases文件中匹配,邮件将转发到example@gmail.com – 但是,foo @ example.com仍然会失败用“此地址无用户”消息。

次佳解决办法

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

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

官方参考:

第三种解决办法

我没有”great answer”但您可能会发现这些链接有用https://help.ubuntu.com/community/PostfixBasicSetupHowto#Receiving Mail和https://help.ubuntu.com/community/Postfix

第四种办法

只是自己这样做,你确实需要postfix,在我的情况下我也想要一个imap服务器,以便我可以在另一台机器上使用一个很好的gui客户端(不提任何名字)。我用过这些文件:

Postfix

Dovecot(imap和pop3)

它实际上非常简单,在几分钟内启动并运行,并且正在接收e-mails。这对于检查所有内容是否设置为OK pingability也很有用。

哦,你当然必须正确设置你的dns条目如下(基于对我有用的设置):

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

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1204.html,未经允许,请勿转载。