Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1027379
  • 博文数量: 179
  • 博客积分: 10080
  • 博客等级: 上将
  • 技术积分: 2580
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-10 09:26
文章分类

全部博文(179)

文章存档

2015年(1)

2014年(1)

2012年(1)

2011年(3)

2010年(14)

2009年(11)

2008年(10)

2007年(42)

2006年(96)

我的朋友

分类: LINUX

2006-02-10 15:54:19

FAQ内容列表










Postfix告警与出错


Postfix报告非法收件地址该怎办?

收到系统退信,Postfix报告: invalid recipient syntax: "-username@domain.tld",这该怎么办?原因是默认的以-开头的邮件地址Postfix认为是非法的,要解决可以这样处理:
main.cf中加入allow_min_user = yes
然后postfix reload即可

POP/IMAP相关问题



连接pop3/imap遭拒绝

以root身份查看系统的mail log,例如(假设操作系统是RedHat Linux,其他操作系统请查阅对应的syslog设置):
# tail -f /var/log/maillog
如果发现在连接pop3或imap4时系统提示"chdir: no such file or direcotry"那么多半是用户的$HOME目录没有生成或路径不对。请仔细检查。

如何实现磁盘限额?

要实现pop3/imap的磁盘限额,可以利用文件系统的quota或者使用支持softquota的软件,例如courier-mta里的maildrop等软件。

Postfix与其他软件组合





我想实现smtp+pop3最基本的mail系统,该如何组织?

建议使用Postfix+imap2000/gnupop3d(mbox格式+系统用户)或Postfix+courier-imap(Maildir+系统/虚拟用户),推荐使用rpm包以加快环境构筑的速度。

如何为Postfix配置Webmail?

  • 功能非常强大界面友好的webmail,推荐使用(perl语言写成)
  • 速度快功能强的webmail,推荐(c语言写成)
  • 简单实用易于快速修改的webmail,推荐(PHP语言由大麻编写)


如何实现虚拟用户的磁盘限额?

可以使用或Postfix 以实现虚拟用户的磁盘限额

Postfix有没有类似qmailadmin的工具?

现今已有了少量类似qmailadmin的虚拟用户管理及设置工具了。Postfix+ldap的推荐使用(由hzqbbc编写)或(java语言), Postfix+MySQL推荐使用。

Postfix在Solaris下编译与使用




grep提示-q参数非法?
Solaris下使用grep时系统总提示:grep : illegal option -- q,原因是Solaris系统自带的grep并不支持-q参数,请使用:/usr/xpg4/bin/grep或安装gnu grep软件包。

install命令失效
运行make install或其他软件包安装程序时,如果调用到install命令,总提示:find: cannot open XXX: No such file or directory或install: XXX was not found anywhere!, 安装GNU binutils软件包用其带的install替换掉系统的install

提示Undefined symbols: dbm_pagfno, dbm_dirfno等
编译Postfix时系统提示如下错误:

Undefined first referenced
symbol in file
dbm_pagfno ../lib/libutil.a(dict_dbm.o)
dbm_dirfno ../lib/libutil.a(dict_dbm.o)

可参考Postfix官方faq,原因是/usr/include/ndbm.h是来自于一些不兼容的第三方dbm软件包,请删除该文件或安装正确的gdbm(包含开发头文件)。注意:安装gdbm时安装ndbm的库和头文件才能彻底解决问题,可行的方法是make install-compat 来安装。编译Postfix的指令时可指定-L/usr/local/lib(gdbm默认安装路径是/usr/local)

制作Postfix RPM包





系统没定义_smp_mflags怎么办?
这个可以通过简单的自定义解决:
%define _smp_mflags -j3

制成rpm后运行提示ldap链接不正确
rpmbuild 没有任何错误提示,安装rpm也正常,但运行postfix的程序或相关工具时,提示libldap.so.2或libldap_r.so.2 not found,这通常是openldap或其他ldap的lib文件不在标准路径里,造成了运行库链接不正确引起的,可以在spec文件里指定:
LDFLAGS="-R/usr/local/lib" 或直接指定postfix的编译指令:
AUXLIBS="${AUXLIBS} -R/usr/local/lib"

如何判断机器/平台类别?
为了在不同平台上使用同一个SRPM,spec文件里希望使用ifarch指令来兼容多个平台,但如何编写?这里仅举一个例子说明:
%ifarch i386 ia64
%define IA 1
%endif

%ifarch sparc sparc64
%define SUN 1
%endif

%if %{IA}
echo "Intel platform"
%endif

%if %{SUN}
echo "Sun Sparc platform"
%endif

将这段代码加入spec文件里,即可看到效果。


SASL常见问题



为什么提示"no SASL authentication mechanisms"?
这个是非常常见的问题,与操作系统及sasl安装/配置都有一定关系,归纳起来有如下几个可能的原因:
  • 如果是标准的Linux发行版(基于rpm或deb的)那么很有可能是没有安装cyrus-sasl-plain、md5、gssapi等认证模块(redhat类linux)或libsasl-plug-login、plain、md5等模块(mandrake等linux),请确认安装。
  • 如果是FreeBSD等操作系统,确定libplain、liblogin、libmd5等动态链接库是否在正确的位置,权限是否可读?等。
  • 如果是源码安装,请特别小心--with-plugindir指定的路径与实际安装的路径是否一样,如果有差异则必然出现类似问题。


为什么老认证失败?(提示535 Error: authentication failed)

SASL认证失败的原因可分为如下几个可能的方面:
  • Permission问题:对系统用户的SASL Auth尤其重要,要保证postfix用户(smtpd)对/etc/shadow有读权限,这必须将postfix加到root组并将shadow文件的组权限加到可读,但这毕竟有些危险,建议不要使用系统用户认证特性;另一方面,如果是用pam(例如pam_mysql, pam_ldap等),特别注意/etc/pam.d/smtp文件(Linux系统)对postfix用户也必须是可读,否则照样会造成认证失败的原因。
  • 配置问题:如果使用pam_ldap, pam_mysql,那么要注意/usr/lib/sasl/smtpd.conf或/usr/lib/sasl2/smtpd.conf的内容不要写错,应该为pwcheck_method: pam 另外/etc/ldap.conf(pam_ldap)及pam_mysql的配置文件一权限要对,二配置必须正确,否则一样无法认证通过。
  • 链接问题:主要指编译Postfix时将Postfix连接到错误的sasl 库,这在cyrus2.x里更加明显,一般linux发行版的cyrus 2.0.x其实是1.5.x及2.0.x的集成版,因此编译Postfix时如果连接到sasl1.x而smtpd.conf却放在/usr/lib/sasl2下那么认证无论如何都不会成功,请注意这点
阅读(1408) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~