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


59

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

如何轻松设置邮件服务器来做到这一点?


3
好的问题,我正在等待一个好的答案。这些年来,我已经建立了几个邮件服务器,这从来都不是一件容易的事。很多决定:什么SMS服务器,什么IMAP / POP,如何存储邮件,如何存储用户...我完全无法给出一个简单的答案。
哈维尔·里维拉,

Answers:


48

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

  • 电邮帐号
  • 电子邮件别名(转发者)
  • IMAP,POP3和SMTP

“轻松”(tl; dr)

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

sudo tasksel install mail-server

尝试执行此操作时,出现了几个问题:首先,它安装了Dovecot,这对大多数用户来说都很好,但是我们认为Courier是满足我们需求的两者中的更好者。其次,它利用了出色的Postfix,但由于它是功能更强大的MTA / SMTP服务器,因此我们还需要Exim。第三,它安装了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软件包。

进出口

安装Exim和apt-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

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

完成update-exim4.conf此操作后,即可使用以下命令重建exim配置:这将完成Exim所需的更改

信使

与安装快递courier-base本应安装courier-authdaemoncourier-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/

然后将地址添加到速递员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

确保在适当的地方替换这些值。另外- uid并且gid 必须是邮件用户的数字用户/组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)

如果看到“验证失败:不允许操作”,请编辑/ 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仍然会失败“没有用户在此地址”消息。


11
这是否带有ISBN号?
韦斯利

1
@WesleyDavid我认为我的bash历史不会显示为ISBN :)
Marco Ceppi

只需遵循这些内容(非常感谢),我已经在上面进行了编辑,以涵盖我在authtest行中遇到的错误。
达伦·格雷夫斯

@DarrenGreaves谢谢!我很高兴它有所帮助,并感谢您的更新!
Marco Ceppi

我正在努力使所有这些工作都正常-当我从debian-administration.org/articles/140添加(编辑路径)350路由文件时,只有valiases路由能够正常工作-虚拟域的东西根本无法工作-您是否必须添加任何路由文件?助教。
达伦·格雷夫斯

14

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

绝对建议您阅读电子邮件服务管理。

官方参考:


是否有偷懒的方法来查看要执行的操作(它将安装的软件包,默认设置)?懒惰的意思是我自己没有安装它。
哈维尔·里维拉,

@哈维尔,您可以通过运行来查看安装了哪些内容sudo tasksel --task-packages mail-server
Marco Ceppi

存储在MySQL的配置下,防垃圾邮件,没有反病毒......它没有对我们来说:(非常有用。
哈维尔·里维拉


4

只是我自己做过,您确实确实需要后缀,在我的情况下,我还想要一个imap服务器,以便可以在另一台计算机上使用一个不错的gui客户端(不提及任何名称)。我使用了这些文件:

后缀

鸽舍(imap和pop3)

它实际上非常简单,只需几分钟即可启动并运行,并且正在接收电子邮件。这对于检查所有设置是否正常都很有用

哦,您当然必须按照以下说明正确设置dns条目(基于对我有用的设置):

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.