我目前有一台服务器,其中运行着 postfix/dovecot/postfixadmin 和 squirrelmail,用于多个域。我使用 mysql 来存储帐户/域详细信息。但是,如果我转到服务器上某个域的 Webmail,我可以登录服务器上任何域上的所有电子邮件帐户。如何才能使只能使用正确域上的邮件帐户登录?如果我这样做了,是否也可以允许直接使用服务器的 IP 地址登录所有邮件帐户?
简而言之,我希望如果用户访问 domain1.com/webmail,他只能使用 @domain1.com 登录电子邮件帐户,但如果用户访问 ABCD/webmail,他可以登录服务器上的所有电子邮件帐户。
编辑:
我觉得我的帖子不够清楚,所以我会尝试更好地解释一下我所拥有的内容:
我有一个 postfix/squirrelmail 安装,并且可以通过 domain.com/webmail(/webmail 是别名)在任何域上访问 squirrelmail。但由于我只有一个安装,因此您可以使用任何域登录我服务器上的所有域。例如,如果我有 domain1.com 和 domain2.com,您可以使用[电子邮件保护]在 www.domain2.com/webmail。我不想要这个。这条规则的唯一例外是,我希望能够使用服务器的 IP 地址(ABCD/webmail)访问完整的邮件服务器,即所有域上的所有电子邮件地址。如果我的问题不清楚,请原谅,英语不是我的主要语言,所以我有时很难用英语解释我的问题。
答案1
为此,您需要更改 Squirrelmail 中的某些代码。
执行登录的页面,您可以从那里使用 PHP 查看域名,然后确保只有当前域名位于 @ 之后。如果您不是 PHP 开发人员,可能需要一些时间才能了解如何执行此操作,我并不推荐此解决方案。
你应该应该做的是创建一个所有用户都登录的 Webmail,然后对页面进行 SSL 加密,以确保用户不会通过明文发送他们的电子邮件凭据,然后将 domain.com/webmail 重定向到例如https://ssl.yoursite.com/webmail
我已建立了多个共享主机环境,托管数千名客户,但没有一个是针对每个域的。它们都放置在安全的位置(因为我拒绝在没有 SSL 的情况下构建 Web 邮件访问)。
现在应该采用这种方法的原因是,用户通常从任何地方访问他们的网络邮件,这大大增加了有人嗅探网络流量从而获得访问权限的风险。
您也不希望发生这种情况,因为如果发生这种情况,您的服务器可能会被用作未经请求的批量电子邮件 (SPAM) 的来源。