使用phpLDAPadmin添加邮件列表
使用系统包管理安装phpldapadmin软件包,然后使用个nginx加载该功能。
设置完成nginx对phpldapadmin的访问在新版本的iredmail系统中会出现如下错误:
Notice: Undefined variable: _SESSION in /usr/share/phpldapadmin/lib/page.php on line 379
Fatal error: Call to a member function getValue() on a non-object in /usr/share/phpldapadmin/lib/page.php on line 379
使用该链接增加该内容到htdocs/index.php文件的59行下面:https://github.com/leenooks/phpLDAPadmin/commit/73b7795bc0b232491de35dd91ad9ea86ad34eae8
if (! is_readable($app['config_file'])) { if (ob_get_level()) ob_end_clean(); die(sprintf("Missing configuration file <b>%s</b> - have you created it?",$app['config_file'])); }
更改/etc/phpldapadmin/config.php的内容如下, 并更改该文件权限为nginx可读:
397 $servers->setValue('login','attr','dn');
398 // $servers->setValue('login','attr','uid');
登录phpLDAPadmin(httpS:// [your_server] / phpldapadmin /)
在左侧面板中展开LDAP树,
ou=Groups
在您的域dn下找到。单击
ou=Groups
左侧面板,然后单击Create a child entry
右侧面板。mailList
在ObjectClasses
列表中选择,然后单击Proceed
。选择
mail
为RDN,填写必要的属性值:
dn: mail=demolist@mydomain.com,ou=Groups,domainName=mydomain.com,o=domains,dc=iredmail,dc=org accountStatus: active cn: demolist enabledService: mail enabledService: deliver enabledService: displayedInGlobalAddressBook mail: demolist@mydomain.com objectClass: mailList
现在切换到ou=Users
左侧面板中的域LDAP dn下。
ou=Users
在左侧面板中展开。查找要分配给我们上面创建的新邮件列表的用户帐户。
单击左侧面板中的用户帐户。
如果
memberOfGroup
右侧面板中存在属性:点击
Add value
它下面并填写我们新邮件列表的邮件地址。例如:demolist@mydomain.com
单击
Update Object
以保存设置。
如果
memberOfGroup
右侧面板中不存在属性:单击
Add new attribute
右侧面板memberOfGroup
在下拉列表中选择。填写我们新邮件列表的邮件地址。
单击
Update Object
以保存设置。
您可以根据memberOfGroup=xxx
需要添加任意数量,这意味着该用户被分配到许多邮件列表。
以下是将外部用户添加为邮件列表成员的示例:
dn: memberOfGroup=demolist@mydomain.com,ou=Externals,domainName=mydomain.com,o=domains,dc=iredmail,dc=org accountstatus: active enabledservice: mail enabledservice: deliver mail: user01@external.com mail: user02@external.com memberofgroup: demolist@mydomain.com objectclass: mailExternalUser
重要说明:如果您没有任何邮件列表成员,Postfix将报告如下错误:
Aug 1 15:45:42 mail postfix/smtpd[6024]: NOQUEUE: reject: RCPT from unknown[1.1.1.1]: 550 5.1.1 <it@domain1.ru>: Recipient address rejected: User unknown in virtual mailbox table; from=<test@domain1.ru> to=<it@domain1.ru> proto=ESMTP helo=<[2.2.2.2]>
邮件列表访问策略
您可以通过添加LDAP属性来限制谁可以向此邮件列表发送电子邮件accessPolicy
。例如:
dn: mail=demolist@mydomain.com,ou=Groups,domainName=mydomain.com,o=domains,dc=iredmail,dc=org accesspolicy: domain ...
可用的访问策略包括:
public
: 无限制。domain
:允许同一域下的所有用户向此邮件列表发送电子邮件。subdomain
:允许相同域和子域下的所有用户向此邮件列表发送电子邮件。membersonly
:只允许此邮件列表的成员。moderatorsonly
:只允许此邮件列表的版主。版主是存储在SQL列中的电子邮件地址alias.moderators
。使用iRedAPD-1.4.5,可以*@domain.com
在邮件域“domain.com”下为所有用户使用(一个)主持人。membersandmoderatorsonly
:只允许此邮件列表的成员和版主。
访问限制在iRedAPD(一个简单的Postfix策略服务器)中实现,iRedMail默认启用它。你最好检查一下它的配置文件 /opt/iredapd/settings.py
,以确保ldap_maillist_access_policy
参数中启用了插件plugins = []
。