我正在我的服务器(Ubuntu 12.04 x64)上设置一个 Discourse 论坛,但是在必须配置邮件程序的时候遇到了困难。
我正在按照 Discourse 的说明进行操作,但一直无法为 Mandrill 配置 postfix。它说要通过输入以下内容来检查我的完全合格域名hostname -f
当我输入 时hostname -f
,我得到localhost
。据我所知,输入hostname -f
应该返回mydomainname.com
。
当我输入时hostname
,我得到的mydomainname
结果是正确的,因为这就是我在 中设置的主机名/etc/hostname
。
查看我的其他一些设置,我的/etc/hosts
文件内容如下:
127.0.0.1 localhost mydomainname
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
在我的/etc/postfix/main.cf
文件中,我进行了myhostname
如下设置:
myhostname = mydomainname.mydomainname.com
(应该这样吗myhostname = mail.mydomainname.com
?)
以下mydestination
内容:
mydestination = mydomainname.com, localhost, localhost.localdomain, localhost
我不太熟悉配置主机名。我一直在阅读Postfix 的说明,但还没能弄清楚。
任何关于如何实现此功能的帮助都将不胜感激。谢谢。
答案1
设置合适的 Ubuntu 电子邮件服务器 (12.04.x) 需要多个文件。以下是我的服务器中目前可用的文件列表。
/etc/hosts
- 我的 Ubuntu 服务器中的这个文件包含以下行以及其他行127.0.1.1 myhostname.mydomainname.tld myhostname
注意:请绝不触摸包含 的行
127.0.0.1
。它可能在每次重新启动时由网络主机生成和/或更新。/etc/hostname
- 我的 Ubuntu 服务器中的这个文件有以下内容。myhostname
/etc/mailname
- 我的 Ubuntu 服务器中的这个文件有以下内容。mydomainname.tld
/etc/postfix/main.cf
- 我的 Ubuntu 服务器中的这个文件包含以下几行,其中包括...myorigin = /etc/mailname myhostname = myhostname.mydomainname.tld mydestination = localhost, myhostname.mydomainname.tld
一旦上述所有文件都具有预期内容,您可以运行以下命令让它们在发送电子邮件时协同工作......
$ sudo hostname -F /etc/hostname
$ sudo service postfix restart
如果你有专门用于电子邮件的服务器,我建议保留原样hostname
。mail
否则,使用 any并继续使用 Mandrillhostname
发送电子邮件。mydomainname.tld
确保一切工作正常,即使重启后也是如此。您不会希望您的网络主机在重启后覆盖任何文件,因为这可能会影响电子邮件的发送/接收。
我希望这能有所帮助。
答案2
/etc/hosts
对您的文件进行如下更改:
<IP> <FQDN> <ALIAS>
因此,对于你来说,情况是这样的:
127.0.0.1 mail.mydomainname.com mail
然后做以下更改:
如果你使用的是 Ubuntu:
编辑 /etc/hostname 并更改为新值,
nano /etc/hostname
如果你使用的是 RHEL/CentOS:
编辑:/etc/sysconfig/network
HOSTNAME=mail.mydomainname.com
然后您可以运行以下命令来应用更改。
hostname mail
然后检查。