我刚买了一台专用服务器,想在上面安装一个网络服务器。服务器是Ubuntu 10.04
。我安装了、、、,ftp
现在我必须安装邮件服务器。nginx
php
mysql
bind
对于邮件服务器,我使用 Postfix,因为它是 ubuntu 推荐的。
我安装了 Postfix,apt-get install postfix
但mail()
功能php
不起作用。经过一些调试后,我找到了解决这个问题的方法:我创建了一个空文件/etc/postfix/main.cf
,它运行良好。
我确实有这样的 mx 记录
mail 5M IN A xxx.xxx.xxx.xxx
example.com. 5M IN MX 1 mail.example.com.
之后我想将所有电子邮件转发到我的 GMail 地址。所以我在 Google 上搜索了一下,并在官方文档中找到了虚拟域名主机转发
我在 main.cf 中添加了这些行
virtual_alias_domains = example.com
virtual_alias_maps = hash:/etc/postfix/virtual
我创建了地图文件并将此行放入其中
@example.com [email protected]
我在终端运行
postmap /etc/postfix/virtual
postfix reload
结果:我可以使用 mail() 函数从 php 发送电子邮件,但是当我发送电子邮件到[电子邮件保护]该电子邮件未转发至我的 Gmail。
如何解决这个问题?
-安德鲁
我也尝试过,但没有用http://rackerhacker.com/2006/12/26/postfix-virtual-mailboxes-forwarding-externally/
现在一切正常!但我不知道问题出在哪里。我刚刚从 Tasksel 安装了“邮件服务器”,之后一切正常。有人能告诉我 Tasksel 安装了什么或做了什么更改吗?
答案1
要调查 Taskel 已加载/将加载的内容,请使用:
$ tasksel --task-packages mail-server ~
dovecot-imapd
procmail
dovecot-common
postfix
libpth20
libmysqlclient16
libgpgme11
mutt
libpq5
dovecot-pop3d
bsd-mailx
ssl-cert
mysql-common
其中大多数都是安全中立的——除了 dovecot。Dovecot 是一种出色且非常安全的 IMAP(服务器端邮件)服务。但是,它不属于典型的网络服务器,并且与发送邮件无关。
解决您的问题的只是 taskel 为您运行了以下命令:
sudo dpkg-reconfigure postfix
由于你的邮件现在可以正常工作,只需卸载 dovecot 的软件包:
sudo aptitude purge dovecot-common dovecot-imapd dovecot-pop3d
祝你好运!
答案2
当你说“我发送邮件至[电子邮件保护]“,你的意思是通过另一个外部账户吗?
在我看来,您的本地邮件传递(调用 mail() 的 php 脚本)正在正确转发,但您的全球互联网邮件传递(例如 example.com)并未流向此框。
为此,您需要确保在 example.com 的 DNS 配置上有一个指向您服务器的 MX 记录。