找到了,SELECT的时候用FROM_UNIXTIME将time_num转换一下就可以了,time_iso字段记录的是UTC时间,谢谢张工支持。
支持 Red Hat Enterprise Linux, CentOS, Scientific Linux, Debian, Ubuntu, FreeBSD, OpenBSD
您尚未登陆。 请选择登陆或是注册一个新账号。
iRedMail 开源邮件服务解决方案 » 由 saic1985 发表的文章
找到了,SELECT的时候用FROM_UNIXTIME将time_num转换一下就可以了,time_iso字段记录的是UTC时间,谢谢张工支持。
但Amavisd中记录的是14位的时间戳,也是按UTC时间记录的,这个怎么自动转换?
没有,我如果修改LDAP中的mail属性,SOGo中LDAP全局地址簿中显示的两个邮件地址都会变化,所以应该是mail属性被映射了两次。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:见下方
====
SOGo中配置的全局地址簿,会显示两个一样的邮件地址,我测试了一下,一个是MailFieldNames属性映射到了LDAP中的mail属性,一个是默认的Email属性也是映射到了LDAP中的mail属性,这导致我从CARDDAV中同步地址簿时,会同步到两个EMAIL,在Outlook中写邮件时“检查姓名”会检查到两个一样的联系人。
目前我找到一个临时解决方案是
MailFieldNames =("m");
将MailFieldNames属性映射到一个不存在的LDAP属性上,问题可以解决,但始终不是正途,不知道大家是怎么解决这个问题的?
试试:
mapping = { ou => ("department", "ou"); };
mapping = {
ou => ("department", "ou");
};
重启SOGOD服务出错。
mapping = {
ou = ("department", "ou");
};
没有效果。
mapping = {
ou = ("departmentNumber", "ou");
};
解决,谢谢张工。
在 iRedAdmin 配置文件里设置正确的时区。如:
LOCAL_TIMEZONE = 'GMT+08:00'
重启 apache 或 uwsgi 服务。
之前我在论坛里找到了帖子提到这一参数,已设置并重启APACHE,没有解决,重启了CENTOS,问题还是一样的。
/var/log/iredapd/iredapd.log中的日志时间是正确的,但IREDADMIN数据库中的时间戳就是晚了8小时。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:见下方
====
Amavisd数据库中的msgs表的time_iso字段应该是记录邮件投递的时间,但该时间比实际的时间晚了8小时,如下记录中的时间实际应为2017年1月17日18点27分,但数据库中记录的时间为2017年1月17日10点27分。
time_iso
20170117102750
IredAdmin数据库中的log表的timestamp字段应该是记录操作的时间,该时间也比实际的时间晚了8小时。
timestamp
2017/1/17 10:49
我看了下系统的时区设置,没有问题,系统时间也是对的,/var/log/maillog中AMAVISD日志的时间也是对的,mysql中设置的时区也是对的。
系统时区设置:
[root@server_name etc]# timedatectl
Local time: 二 2017-01-17 18:52:30 CST
Universal time: 二 2017-01-17 10:52:30 UTC
RTC time: 二 2017-01-17 10:52:31
Time zone: Asia/Shanghai (CST, +0800)
/var/log/maillog中AMAVISD日志的时间:
Jan 17 19:09:11 server_name amavis[3997]:
Mysql中的时区设置:
MariaDB [iredadmin]> show variables like "%time_zone%";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | +08:00 |
+------------------+--------+
但数据库中记录的时间就是晚了8小时,太奇怪了,有同样问题的朋友请指导一下问题在哪,谢谢。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:见下方
====
今天测试SOGO的时候发现LDAP通讯录中没有Department属性,查了下文档,SOGO默认是将LDAP中的ou属性映射为通讯录中的Department属性,而IRedMail在LDAP中是不使用ou属性的,根据文档中所述,可以通过配置SOGoUserSources中的mapping属性更改SOGO的默认映射,但我按如下进行配置后,完全没有效果,不知道是怎么回事。
这是按文档进行的配置,没有效果。
mapping = {
Note = ("cn","Note");
};
这是我google找到的配置,也没有效果。
mapping = {
note = ("cn");
};
请张工帮忙分析下,谢谢。
看了下日志,没有发现什么问题,日志里显示安装了epel-release仓库,但/etc/yum.repos.d/下面却没有这个仓库文件。
我用yum手动安装了epel-release仓库,安装成功,再继续安装iRedMail,amavisd等也成功安装了,挺奇怪的。
注释掉下面三个参数:
postscreen_dnsbl_threshold
postscreen_dnsbl_sites
postscreen_dnsbl_reply_map
iRedMail 会安装 epel-release 这个 rpm 包,它会启用 EPEL 仓库。你的安装过程似乎有点不一样。
iRedMail安装有日志吗?
命令显示没有用到 iRedMail 和 EPEL 这两个仓库,所以缺了几个包。检查下 /etc/yum.repos.d/ 目录下的仓库文件。
/etc/yum.repos.d/目录下有这些仓库文件,没有EPEL仓库文件,但我看了下之前装好iRedMail的机器上也没有EPEL仓库文件。
-rw-r--r--. 1 root root 1664 12月 9 2015 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 12月 9 2015 CentOS-CR.repo
-rw-r--r--. 1 root root 649 12月 9 2015 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 290 12月 9 2015 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 12月 9 2015 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 12月 9 2015 CentOS-Sources.repo
-rw-r--r--. 1 root root 1952 12月 9 2015 CentOS-Vault.repo
-rw-r--r-- 1 root root 121 12月 6 15:57 iRedMail.repo
-rw-r--r-- 1 root root 359 12月 6 15:56 sogo.repo
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:见下方
====
今天尝试在CentOS7下全新安装iRedMail,CentOS也是新装的,安装完成发现少了Amavisd、ClamAV等组件,恢复系统后再次安装iRedMail,发现yum安装过程中提示找不到amavisd等组件的安装包,见以下输出:
安装命令为:IREDMAIL_MIRROR='http://42.159.241.31' bash iRedMail.sh
[ INFO ] Add yum repo for SOGo: /etc/yum.repos.d/sogo.repo.
[ INFO ] Installing package(s): postfix openldap openldap-clients openldap-servers mariadb-server mod_ldap php-common php-gd php-xml php-mysql php-ldap php-pgsql php-imap php-mbstring php-pecl-apc php-intl php-mcrypt php httpd mod_ssl dovecot dovecot-pigeonhole dovecot-mysql dovecot-pgsql amavisd-new spamassassin altermime perl-LDAP perl-Mail-SPF unrar pax clamav clamav-update clamav-server clamav-server-systemd php-pear-Net-IDNA2 sogo sogo-activesync libwbxml sogo-ealarms-notify sogo-tool sope49-gdl1-mysql sope49-ldap python-sqlalchemy python-setuptools python-dns python-ldap MySQL-python python-jinja2 python-webpy python-netifaces python-beautifulsoup4 python-lxml py-bcrypt mod_wsgi awstats fail2ban unzip bzip2 acl patch tmpwatch crontabs dos2unix logwatch
Loaded plugins: fastestmirror, langpacks
Not using downloaded repomd.xml because it is older than what we have:
Current : Tue Nov 15 22:00:31 2016
Downloaded: Fri Jul 29 08:51:01 2016
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.aliyun.com
No package php-imap available.
No package php-pecl-apc available.
No package php-mcrypt available.
No package amavisd-new available.
No package altermime available.
No package clamav available.
No package clamav-update available.
No package clamav-server available.
No package clamav-server-systemd available.
No package php-pear-Net-IDNA2 available.
Package python-setuptools-0.9.8-4.el7.noarch already installed and latest version
No package python-netifaces available.
No package python-beautifulsoup4 available.
Package python-lxml-3.2.1-4.el7.x86_64 already installed and latest version
No package py-bcrypt available.
No package awstats available.
No package fail2ban available.
看了下/etc/yum.repos.d下的repo文件,iRedMail.repo已正确添加,baseurl=http://42.159.241.31/yum/rpms/7/,没发现什么问题,我尝试了下用yum install amavisd-new命令手动安装,也提示没有可用软件包。
请张工帮忙分析下是什么问题,谢谢。
不好意思,这几天太忙,没来得及回复。
那张工,先不管这个问题是什么引起的,我想确认一下,IREDADMIN-PRO是否使用amavisd-release管理隔离邮件,如果我购买了IREDADMIN-PRO是否可以直接绕开amavisd-release?
试了一下TELNET,命令如下:
request=release
mail_id=WeYW_P_pQI5h
quar_type=Q
recipient=postmaster@example.com
postmaster收到了被隔离的邮件,但数据库quarantine里的记录没有被删除。
既然TELNET的方式是正常的,那问题应该还是出在AMAVISD的配置中,报错跟$QUARANTINEDIR参数有关,但该参数应该是不影响SQL方式存储的隔离邮件,请张工帮忙分析下,谢谢。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:450 4.5.0 Failure: Config variable $QUARANTINEDIR is empty at (eval 125) line 317, <GEN18> line 4.
====
今天测试了下AMAVISD的隔离功能,设置
$banned_files_quarantine_method = 'sql:';
$banned_quarantine_to = 'banned-quarantine';
然后重启AMAVISD,试着发了封含有被禁止后缀名附件的邮件,邮件正确地被隔离到了数据库中。
接下来尝试用amavisd-release命令将隔离邮件释放出来,命令如下:
amavisd-release WeYW_P_pQI5h
很奇怪,报如下错误:
Can't connect to UNIX socket /var/spool/amavisd/amavisd.sock: 没有那个文件或目录 at /usr/bin/amavisd-release line 270.
但我检查了AMAVISD配置文件,指向的应该是如下路径:
$unix_socketname = "/var/run/amavisd/amavisd.sock";
算了,先不管它,我在/var/spool/amavisd/下面用ln命令创建了一个到/var/run/amavisd/amavisd.sock的链接,重新运行amavisd-release,倒是不报之前的错误了,换成了:
450 4.5.0 Failure: Config variable $QUARANTINEDIR is empty at (eval 125) line 317, <GEN18> line 4.
再次检查配置文件,$QUARANTINEDIR=undef,看文档,该参数应该是在$banned_files_quarantine_method=local:的时候生效的,用SQL存储隔离邮件这个参数应该不起作用。
然后就在这里卡住了,请大家帮忙分析下,谢谢。
看了一下,文档里说的是D_BOUNCE会发送一个“未投递成功”的通知给发件方,而D_REJECT是会发送一个“拒绝”的响应给上游MTA,D_DISCARD则是直接销毁邮件,没搞明白发件方和上游MTA具体有什么区别。
仔细研究了下日志,D_BOUNCE处理方式中我的MTA在BOUNCE之后向发件地址发送了一份“邮件”(也许是别的什么),可能这就是那个所谓的”未投递成功“的通知,但发件人实际并不会收到邮件。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:无错误日志
====
Amavisd中对不同类型的风险邮件的定义了四种处理方法:D_PASS,D_BOUNCE,D_REJECT,D_DISCARD。
D_PASS很好理解,直接放行;
D_REJECT是拒收,发件方会收到退信;
但D_BOUNCE和D_DISCARD在处理上有什么区别?
看字面意思一个是弹回,一个是销毁,从文档中看到,D_BOUNCE是反馈给发件方MTA一个2XX的成功状态,并发一个“未投递成功”的响应给发件方,而D_REJECT是反馈给发件方MTA一个5XX的拒绝状态,D_DISCARD则是直接销毁邮件,不给任何反馈。
从实际测试效果来看,D_BOUNCE和D_DISCARD两种处理方式,收件方都没有接收到邮件,发件方也未收到退信,投递状态也就是250 OK,除了在日志中能体现出来一个是BOUNCE了,一个是DISCARD了,似乎没有什么区别?
请了解的朋友解释一下,谢谢!
D_BOUNCE:
Nov 16 15:29:00 Mailserver postfix/smtp[91389]: B7F4C46CCB11: to=<test@example.com>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.57, delays=0.18/0.02/0.01/0.35, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=87004-01, DISCARD(bounce.suppressed))
D_DISCARD:
Nov 16 15:30:28 Mailserver postfix/smtp[91389]: 748EA46CCB12: to=<test@example.com>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.4, delays=0.16/0/0.01/0.22, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=91928-01 - BANNED: .dat,test.xlsx)
Office2010也是正常的,谢谢张工的支持。
hmm,洁癖啊。
目前已知的是 sql 版没法单独禁用一个功能,ldap 版可以,但我没测试过。具体请看 sogo 文档里的 ModulesConstraints 参数:
https://sogo.nu/files/docs/SOGoInstallationGuide.html
也不算洁癖了,SOGo的WebMail功能本来也不好用。
已确认,该参数可以单独控制Mail、Calendar、Contacts功能允许哪些用户使用。
示例:
//仅允许LDAP中cn属性为postmaster的用户使用Mail功能。
ModulesConstraints={
Mail={
cn=postmaster;
};
};
谢谢张工支持!
这个恐怕是客户端的问题了。。。
很奇怪,难道只有我一个人出现这个问题么?我也是醉了。
我将Office2013升级至SP1,并在配置文件中namespace后面加了个inbox,目前2013是正常了,等会再测试一下2010。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:无错误日志
====
我的理解,在/etc/dovecot/dovecot.conf中通过配置namespace实现IMAP中的已发送邮件、已删除邮件等保存在服务器上。其中的mailbox区块逐一配置IMAP文件夹,并通过special_use参数指定该文件夹的用途(按照RFC 6154),auto参数设置为subscribe表明第一次通过IMAP连接时自动创建该文件夹并注册其用途(让邮件客户端可以查找到)。
以“已发送邮件”为例,安装完iredmail的默认配置中,设置一个mailbox名为Sent,auto=subcribe,special_use=\Sent。
namespace {
type = private
separator = /
prefix =
inbox = yes
mailbox Sent {
auto = subscribe
special_use = \Sent
}
}
当通过foxmail以IMAP方式连接到服务器后,服务器自动在用户邮箱存储路径Maildir文件夹下创建Sent文件夹,foxmail自动映射该文件夹为“已发送邮件”。
但是,如果通过Outlook2010配置IMAP,服务器也自动创建了Sent文件夹,但Outlook2010没有映射该文件夹为“已发送邮件”,而是自行在用户邮箱存储路径Maildir文件夹下创建了一个名为“.&XfJT0ZABkK5O9g-”的文件夹,并将其映射为“已发送邮件”。
为此,我将/etc/dovecot/dovecot.conf中的Mailbox Sent更改为中文的“已发送邮件”,其他设置保持不变,删除用户邮箱文件夹,重启DOVECOT,再用Outlook2010重新连接,服务器也自动创建了“.&XfJT0ZABkK5O9g-”文件夹,并且Outlook2010也将其映射为已发送邮件了。
namespace {
type = private
separator = /
prefix =
inbox = yes
mailbox 已发送邮件 {
auto = subscribe
special_use = \Sent
}
}
Outlook2010是正常了,foxmail在这种设置下也是正常的,但是当我尝试用Outlook2013配置IMAP的时候,问题又来了,Outlook2013没有自动将“.&XfJT0ZABkK5O9g-”文件夹映射为“已发送邮件”,而是在客户端生成了一个“已发送邮件(仅限于此计算机)”的文件夹,已发送邮件会保存到该文件夹中,但该文件夹并不位于IMAP服务器上,效果就类似于POP3方式配置的情况了。
不知道大家在使用Outlook配置邮箱的时候有没有遇到过这样的问题,是怎么解决的,请指教,谢谢。
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:无错误日志
====
既然已经有了RoundCube作为WebMail,SOGo的WebMail功能就有些鸡肋了,是否可以更改配置,关闭SOGo的WebMail功能,只提供CARDDAV、CALDAV等功能?
似乎是 DNS 查询受到干扰了。在 postfix 配置文件里的 zen.spamhaus.org 后面指定只处理返回的 127.0.0.2-11 结果。
原设置:
postscreen_dnsbl_sites = zen.spamhaus.org*3 b.barracudacentral.org*2
改为:
postscreen_dnsbl_sites = zen.spamhaus.org=127.0.0.[2..11]*3 b.barracudacentral.org*2
reload 或 restart postfix 服务。
问题已解决,谢谢张工的支持!
==== 必填信息。没有填写将不予回复 ====
- iRedMail 版本号:0.9.5-1
- 使用哪个数据库存储用户帐号(OpenLDAP,MySQL,PostgreSQL):OpenLDAP
- 使用的 Linux/BSD 发行版名称及版本号:Centos7
- 与您的问题相关的日志信息:
postfix/dnsblog[69332]: addr 115.124.20.39 listed by domain zen.spamhaus.org as 220.250.64.225
postfix/postscreen[69496]: DNSBL rank 2 for [64.137.185.126]:50617
postfix/postscreen[69496]: DISCONNECT [64.137.185.126]:50617
====
iredmail默认开启了postfix的postscreen功能进行反垃圾邮件,使用的DNSBL服务器是zen.spamhaus.org,如果发件方服务器IP被列在zen.spamhaus.org的名单中,应该是返回127.0.0.2,但很奇怪,我测试下来,用国内多个个人邮箱(网易、腾讯、阿里云)提供商发送邮件给自己的iredmail邮箱,都被退信了,从maillog中看到,zen.spamhaus.org返回的是220.250.64.225而不是127.0.0.2,但postscreen功能还是生效了,断开了对方服务器的连接,因此发件方显示被退信。
请问这是什么情况?返回值220.250.64.225是什么意思?发件服务器应该不是垃圾邮件服务器,但从zen.spamhaus.org查询确实返回了值,虽然不是127.0.0.2,很是困扰,召唤高手解答,谢谢!
iRedMail 开源邮件服务解决方案 » 由 saic1985 发表的文章
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 3 official extensions. Copyright © 2003–2010 PunBB.
页面生成时间 0.020 秒, 共执行查询 60 条