Postfix:错误:打开数据库 /etc/postfix/generic.db:没有此文件或目录

Postfix:错误:打开数据库 /etc/postfix/generic.db:没有此文件或目录

我在启动 postfix 服务器时看到这样的错误,并且在查看邮件日志时也看到很多失败。我该如何解决这个问题?

Jan 13 22:43:46 CentOS-72-64-minimal postfix/master[1651]: warning: process /usr/libexec/postfix/smtp pid 1297 exit status 1
Jan 13 22:43:46 CentOS-72-64-minimal postfix/master[1651]: warning: /usr/libexec/postfix/smtp: bad command startup -- throttling
Jan 13 22:43:47 CentOS-72-64-minimal postfix/qmgr[1653]: warning: private/smtp socket: malformed response
Jan 13 22:43:47 CentOS-72-64-minimal postfix/qmgr[1653]: warning: transport smtp failure -- see a previous warning/fatal/panic logfile record for the problem description

以下是 postconf -n 的结果

[root@host ~]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = localhost
mail_owner = postfix
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_bcc_maps = hash:/etc/postfix/bcc
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_generic_maps = hash:/etc/postfix/generic
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

PS运行

 postmap /etc/postfix/generic

似乎已经解决了这个问题...

答案1

确保前体文件(generic 而不是 generic.db)存在

ls -la /etc/postfix/generic

当发生错误时,通常此文件不存在...因此请创建它:

touch /etc/postfix/generic

只有这样才有用

 postmap /etc/postfix/generic

现在你将有一个填充文件 /etc/postfix/generic.db

答案2

我发现在我的 /var/log/mail.err 中我看到很多这样的错误:

postfix/trivial-rewrite[16343]: 错误:打开数据库 /etc/postfix/relay.db:没有此文件或目录

所以我基本上遵循了上面的指导:

  1. 触摸/etc/postfix/relay
  2. /usr/sbin/postmap /etc/postfix/relay
  3. /sbin/rcpostfix 重新启动

这招很管用。

相关内容