1,776

(4 篇回复,发表在 iRedMail 技术支持)

iRedMail 提供了基于 managesieve 服务的 sieve 过滤规则,但不确定是否是你想要的。参考:
http://wiki2.dovecot.org/Pigeonhole/Sieve

1,777

(4 篇回复,发表在 iRedMail 技术支持)

lwydata 写道:

我由 courier-imap 轉到 iredmail 上的 dovecot
之後發現有大量 E-Mail 被標為 "un-seen"
想請教大大有無方法可以 "mark" 回它們做 "seen" ?? <--- 因此 outlook 發了很多回條出去

参考:
- http://wiki.dovecot.org/Migration/Courier
- http://wiki2.dovecot.org/Migration/Courier

lwydata 写道:

另外, 想請教一下, iredmail 在 mysql 上有無 "filter by subject" 這功能 ??

您说的 "filter by subject" 具体是指什么?

rain6966 写道:

但卻變成Admin Log 提前8小時了?

可能 iRedAdmin 记录 Admin Log 时直接用了本地时间而不是 GMT 时间导致的。我会检查一下这个问题,如果确实如此则会尽量在下一版本里修正。

php-mcrypt, php-mbstring 争取放入 iRedMail 自己的 yum repo 里去。感谢反馈。

在 iRedAdmin-Pro 目录下新建一个文件:libs/settings_local.py,加入以下内容:

LOCAL_TIMEZONE = 'GMT+08:00'

设置正确的 owner 和权限:

# chown iredadmin:iredadmin libs/settings_local.py
# chmod 0555 libs/settings.py

重启 Apache 即可。

备注:LOCAL_TIMEZONE 是 libs/settings.py 里的参数,但为了避免升级 iRedAdmin-Pro 后需要再次修改新版本里的 libs/settings.py,如果要修改 libs/settings.py 里的参数,最好是将要修改的参数放到 libs/settings_local.py 里,升级 iRedAdmin-Pro 时只需要复制 libs/settings_local.py 到新版本里即可同步你的 custom settings。

rain6966 写道:

問題,我要如何修正bug?

  • 下载这个回复帖子里的补丁文件(patch),保存并上传到您运行着 iRedAdmin-Pro-LDAP-1.7.2 的服务器。假设您上传后的文件是 /root/home_directory.patch。

  • 打开 Terminal 程序,如 gnome-terminal, xterm, rxvt,将当前工作路径切换到 iRedAdmin-Pro-LDAP-1.7.2 的目录。例如:

# cd /var/www/iRedAdmin-Pro-LDAP-1.7.2/
  • 检查这个 patch 是否能顺利打上(一定要加 --dry-run 参数):

# patch --dry-run -p0 < /root/home_directory.patch
patching file libs/ldaplib/user.py
  • 如果您看到了完全一致的输出信息,表示可以立即应用这个补丁。可以去掉 --dry-run 参数了:

# patch -p0 < /root/home_directory.patch

重启 Apache 即可。

rain6966 写道:

更改其原先 users/Profile of user/advance/ 的smtp設定 , 會有homeDirectory(home)=/var /vmailvmail1/ 錯誤訊息,

抱歉,此为 iRedAdmin-Pro-LDAP-1.7.2 及更早之前版本的一个 bug,patch 如下:

diff -r c0bd33634160 admin/ldap/1.7.2/libs/ldaplib/user.py
--- a/admin/ldap/1.7.2/libs/ldaplib/user.py    Mon May 28 16:56:14 2012 +0800
+++ b/admin/ldap/1.7.2/libs/ldaplib/user.py    Mon May 28 17:30:24 2012 +0800
@@ -805,6 +805,8 @@
             # Update storageBaseDirectory.
             if session.get('domainGlobalAdmin') is True:
                 self.storageBaseDirectory = str(data.get('storageBaseDirectory', cfg.general.get('storage_base_directory')))
+                if not self.storageBaseDirectory.endswith('/'):
+                    self.storageBaseDirectory = self.storageBaseDirectory + '/'
                 mod_attrs += [(ldap.MOD_REPLACE, 'storageBaseDirectory', self.storageBaseDirectory)]
 
                 # Update mailMessageStore.

简单来说,bug 在于在标签 "Advanced" 里点了“保存”后,iRedAdmin-Pro 没有自动为 storageBaseDirectory 的值追加一个 '/'。

rain6966 写道:

3.最重要一點,重裝後,原先Pro 的license 會失效?(系統重安裝, 原先Pro的下載可用?)

可以下载。如果失效,发送一封邮件到 support _at_ iredmail.org 索要。

1,783

(2 篇回复,发表在 iRedMail 技术支持)

检查一下 Postfix 的日志文件:/var/log/mail.log。

ZhangHuangbin 写道:
rain6966 写道:

2.但我又發現幾個問題 , 想再請 張大 幫忙.
(A)從 /郵件列表/ 刪除某一用戶會有 “錯誤: 303 See Other” 訊息.(詳附圖)

应是 iRedAdmin-Pro 的 bug,稍后给你回答。

经过测试,发现我这里不存在这样的问题(没有出现 303 See Other 信息)。

ZhangHuangbin 写道:
rain6966 写道:

(B)從 /用戶/ 刪除zz@aa.com其原隸屬pe@aa.com郵件列表裡 .
今再建立同一名稱帳號zz@aa.com , 其會自動加入pe@aa.com的群組裡 .

这是由于 LDAP 的邮件列表的实现方式决定的。

如果用户 zz@ 属于邮件列表 pe@,则用户 zz@ 的 LDAP 属性里会增加一个:memberOfGroup=pe@xxx。理想情况下,在 iRedAdmin-Pro 里删除列表 pe@ 时,应该同时删除 zz@ 的 memberOfGroup=pe@xx 属性。所以这可能是 iRedAdmin-Pro 的另一个 bug。

经过测试,这个问题在我这里也不存在。

在 amavisd.conf 里有这样的设置:

$policy_bank{'MYUSERS'} = {
    ...
    # don't perform spam/virus/header check.                                       
    #bypass_spam_checks_maps => [1],                                               
    #bypass_virus_checks_maps => [1],                                              
    #bypass_header_checks_maps => [1],                                             
                                                                                   
    # allow sending any file names and types                                       
    bypass_banned_checks_maps => [1],
    ...
}

将对应的 bypass_ 设置去掉注释并重启 Amavisd 服务即可。

yaoming 写道:

1.如果我向某个用户发送一封邮件,但是后来发现发错了。这时我作为系统管理员应该怎么删除该邮件呢?

在用户的邮箱目录里查找对应的邮件标题。例如用 grep 命令过滤。

yaoming 写道:

2.我发现root的自带账户下www下有很多的系统日志的邮件,这些邮件一个一个的删除太慢了。我怎样才能一次全部删除?

同上。

yaoming 写道:

3.如果我要清空系统中所有账户的邮件时,是不是只需删除/var/vmail下的所有文件夹就行了?

删除 /var/vmail/vmail1/ 目录下的所有子目录。

rain6966 写道:

A).結果不行
Sending mails via SMTP over TLS/SSL 打勾 ,詳如附圖

iRedMail 使用的是 STARTTLS,不是 SSL,所以在“外寄伺服器”里勾选 SSL 会导致错误。我个人不使用 Outlook,不确定 Outlook 该如何设置让它使用 STARTTLS。

rain6966 写道:

May 17 17:19:04 mail1 qpidd[1501]: 2012-05-17 17:19:04 notice SSL plugin not enabled, you must set --ssl-cert-db to enable it. #這是否有關係?

这里的 qpidd 是什么?iRedMail 没有用到这个 daemon/software。:(

rain6966 写道:

==>maillog

May 17 19:36:17 mail1 postfix/smtpd[2322]: NOQUEUE: reject: RCPT from web.aa.com[203.69.xx.xx]: 553 5.7.1 <dd@aa.com>: Sender address rejected: not owned by user dd@aa.com; from=<dd@aa.com> to=<dd@aa.com> proto=ESMTP helo=<tlsb>

如日志所言,在 Outlook 里用于 smtp auth 的用户名和你在 mail header 里指定的 From: 地址不一致。
iRedMail 默认要求这两者必须一致,所以会报这个错误。可以通过去掉 Postfix 的 smtpd_sender_restrictions 设置里的 reject_sender_login_mismatch 来修正这个问题。但要注意,这样有可能导致同一个域内的用户冒充其它用户发送邮件(由于大多数用户只看 From: 里的地址,而不是实际 smtp auth 的用户名,所以容易认为实际寄信的人就是 From: 里的地址)。

rain6966 写道:

==> Dovecot.log

May 17 19:37:54 pop3-login: Info: Login: user=<dd@aa.com>, method=PLAIN, rip=203.69.xx.xx, lip=10.10.xx.xx, mpid=2346, TLS
...
May 17 19:39:13 imap-login: Info: Login: user=<dd@aa.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=2350, secured

第一行日志里显示是 TLS,表示用户是通过 IMAPS (IMAP over STARTTLS)进行验证的,这个OK。
第二行日志显示 PLAIN,也是OK的。因为 Dovecot 默认是认为从本地 127.0.0.1 (lip=127.0.0.1,lip -> Local IP)发起的链接是安全的(secured)。即使不是使用 STARTTLS 也会显示为 secured。


rain6966 写道:

B).
Sending mails via SMTP
Sending mails via SMTP over TLS/SSL
兩者皆打勾 , 可收發 ,但是否為無意義 ?

按照您要求的必须都用 STARTTLS,所以这里 "Sending mails via SMTP" 应该不勾选,只勾选 "Sending mails via SMTP over TLS/SSL"。

6966 写道:

系統log如下:

==> maillog
==> dovecot.log

这两段看不出什么信息。抱歉。

你说的都正确。 smile

1,789

(3 篇回复,发表在 iRedAdmin-Pro 技术支持)

Fail2ban 的主配置文件是 /etc/fail2ban/jail.local。其它信息建议参考:http://www.fail2ban.org/

Sorry,刚刚重新测试了强制客户端使用 STARTTLS 进行 SMTP AUTH,以下设置是可行的:

1) Postfix: 强制用户使用 STARTTLS。

# File: /etc/postfix/main.cf

smtpd_tls_security_level = encrypt

2) 允许 Amavisd-new re-injection 不使用 STARTTLS:

# File: /etc/postfix/master.cf

127.0.0.1:10025 inet n  -   -   -   -  smtpd
    -o smtpd_tls_security_level=none
    ...

重启 Postfix 服务后即可。

同时,需要修改 Roundcube 的配置文件 config/main.inc.php:

$rcmail_config['smtp_server'] = "tls://127.0.0.1";  // 原先没有 tls://
$rcmail_config['smtp_auth_type'] = "LOGIN";    // 原先为空,由 Roundcube 自行选择

麻烦您测试后在这里反馈一下,都没问题的话我打算将它放在下一版本的 iRedMail 里,这样默认安装的 iRedMail 就更加安全了。

rain6966 写道:

2.但我又發現幾個問題 , 想再請 張大 幫忙.
(A)從 /郵件列表/ 刪除某一用戶會有 “錯誤: 303 See Other” 訊息.(詳附圖)

应是 iRedAdmin-Pro 的 bug,稍后给你回答。

rain6966 写道:

(B)從 /用戶/ 刪除zz@aa.com其原隸屬pe@aa.com郵件列表裡 .
今再建立同一名稱帳號zz@aa.com , 其會自動加入pe@aa.com的群組裡 .

这是由于 LDAP 的邮件列表的实现方式决定的。

如果用户 zz@ 属于邮件列表 pe@,则用户 zz@ 的 LDAP 属性里会增加一个:memberOfGroup=pe@xxx。理想情况下,在 iRedAdmin-Pro 里删除列表 pe@ 时,应该同时删除 zz@ 的 memberOfGroup=pe@xx 属性。所以这可能是 iRedAdmin-Pro 的另一个 bug。

rain6966 写道:

(C)

已更新 wiki 文档,加入了 file owner/permission 方面的修正。多谢反馈。:)

rain6966 写道:

Iptables把不用的port關掉 ,強迫client user使用 starttls

# http/https, smtp-starttls 587 , pop3s 995, imaps 933
-A INPUT -p tcp -m multiport --dport 80,443,587,995,993 -j ACCEPT

你将 25 端口去掉了?25是必需的,因为它更主要作用的是用于 MTA server 之间的通讯,其次才是用户使用这个端口做 smtp authentication。

Postfix 是提供了强制 smtp auth 使用 STARTTLS 的,但之前已经说明,由于有  Amavisd-new 这个组件,它会将扫描 (spam, virus scanning) 过的邮件 re-inject 回 Postfix,这个 re-inject 的处理没法强制使用 STARTTLS,所以端口 25 用于 smtp auth 时只能允许 plain text。

1,792

(2 篇回复,发表在 iRedMail 技术支持)

软件包冲突,应该是你的系统已经安装了  openldap 的旧版本。

建议先通过 yum update 升级系统,再安装 iRedMail。

如果只有一台机器会这样,但其它机器不会,也许应该检查一下机器是否中毒了?

执行以下命令以确保 iredapd 会在开机时自动启动:

# chkconfig --level 345 iredapd on

至于修改后出现错误,麻烦贴一下出错的日志信息,便于分析。

ZhangHuangbin 写道:

由于 virtual_alias_maps 里指定的 lookup 文件(/etc/postfix/ldap/sender_login_maps.cf)指明了要有 "enabledService=smtp",所以邮件列表里的成员(邮件用户)必须有 enabledService=smtp 这个 LDAP attribute/value。(您的 pop3 仍可以不勾选)

这个问题已经修正,代码修改记录:
https://bitbucket.org/zhb/iredmail/chan … 3268588073

修正步骤已经在这里详细描述:
http://www.iredmail.org/wiki/index.php? … ice.3Dsmtp

感谢您的反馈。:)

rain6966 写道:

(A). 以下為postfix virtual_alias_maps的資料

无误。

rain6966 写道:

(B).最後檢查及他設定 , 發現問題的所在,詳下圖:

在 "用戶屬性"下的"進階設定"中: (圖我不懂得傳上去?!)
因我想使用TLS/SSL來收發信件 , 故一般的smtp/pop3未打勾(綠色)
只要把綠色的地方打勾, pe@aa.com的成員pe1@aa.com及pe2@aa.com及bcc密送的admin@aa.com皆可收到信.

It makes sense.

由于 virtual_alias_maps 里指定的 lookup 文件(/etc/postfix/ldap/sender_login_maps.cf)指明了要有 "enabledService=smtp",所以邮件列表里的成员(邮件用户)必须有 enabledService=smtp 这个 LDAP attribute/value。(您的 pop3 仍可以不勾选)

一般都是假设 LDAP mail user 具有默认的所有 enabledService 值,所以一开始难以判断您的问题根源所在。

rain6966 写道:

(C).當我只使用TLS/SSL來收發信件,要如何設定,網站上有文件可參考?

只用 STARTTLS 来收取邮件很简单。在 dovecot.conf 里设置以下参数:

dovecot.conf 写道:

disable_plaintext_auth=yes
ssl=required     # 必须是 required。ssl=yes 表示可以是 plain text,也可以是 STARTTLS

Postfix 里的设置不需要改动,只要使用 submission 587 (STARTTLS,而不是 SSL) 即可。

P.S.  smtps 已经被弃用,建议的方式是 submission 587(即 STARTTLS)。

貌似是局域网里的机器?正常来说是不会使用那么多80端口的。

yaoming 写道:

主要是局域网所用,上面的方法也是我从网上抄来的,不知道有谁做过这方面的实验

RHEL/CentOS 的倒是很简单,将需要的 RPM 下载好,再禁止 iredmail 自动刷新 yum 仓库即可。

yaoming 写道:

如果是局域网用是不是就不需要Adavisd+ClamAV+SpamAssassin这需东西了,就连DKIM 也可以不要了。

是的。

但是,联网装好后再断网会不会简单点?

louie 写道:

我忘记mysql root 密码了,不知道对邮件服务器有什么影响?

没有影响。iRedMail 只在 0.8.0 版本里会将 MySQL 的 root 的用户名/密码记录在 /var/vmail/backup/backup_*.sh 的备份脚本里。

louie 写道:

能不能找回root密码?
用网上破解root密码的方法会不会对邮件域带来影响?

当然可以,没有影响。

你列的方法基本可行,实际试试便知。

yaoming 写道:

如果我到一个不能连互联网的环境下部署iRedmail,不就什么也干不了了

我比较好奇不能联网的环境部署邮件系统主要用来做什么?