Достался в наследство почтовый сервер на базе Exim/Vexim/MySQL, который давно не обновляли:
Код: Выделить всё
# uname -a
FreeBSD domain.com 9.3-RELEASE-p6 FreeBSD 9.3-RELEASE-p6 #0 r275681: Wed Dec 10 18:48:58 EET 2014
# pkg info | grep exim
exim-4.80.1_1 High performance MTA for Unix systems on the Internet
vexim-2.2.2.r1 Web interface for managing virtual domains for exim
# pkg info | grep mysql
mysql-client-5.5.29 Multithreaded SQL database (client)
mysql-server-5.5.29 Multithreaded SQL database (server)
# pkg info | grep php
php53-5.3.29 PHP Scripting Language
php53-gettext-5.3.29 The gettext shared extension for php
php53-hash-5.3.29 The hash shared extension for php
php53-mbstring-5.3.29 The mbstring shared extension for php
php53-mysql-5.3.29 The mysql shared extension for php
php53-openssl-5.3.29 The openssl shared extension for php
php53-posix-5.3.29 The posix shared extension for php
php53-session-5.3.29 The session shared extension for php
php53-xml-5.3.29 The xml shared extension for php
# pkg info | grep perl
perl-threaded-5.12.4_5 Practical Extraction and Report Language
Код: Выделить всё
1) Reinstall new version of Perl (5.18):
portupgrade -o lang/perl5.18 -f lang/perl5.12
2) Reinstall everything that depends on Perl:
portupgrade -fr lang/perl5.18
Код: Выделить всё
2016-01-25 17:33:03 H=(pc.local) [XX.XX.130.244] sender verify defer for <user@domain.com>: Temporary internal error
2016-01-25 17:33:03 H=(pc.local) [XX.XX.130.244] F=<user@domain.com> A=fixed_login:user temporarily rejected RCPT <user2@domain2.com>: MYSQL: no data found
Часть конфига Exim:
Код: Выделить всё
MAILMAN_HOME=/usr/local/mailman
MAILMAN_WRAP=MAILMAN_HOME/mail/mailman
MAILMAN_USER=mailnull
MAILMAN_GROUP=mail
primary_hostname = domain.com
disable_ipv6 = true
MY_IP = XX.XX.108.107
VIRTUAL_DOMAINS = SELECT DISTINCT domain FROM domains WHERE type = 'local' AND enabled = '1' AND domain = '${quote_mysql:$domain}'
RELAY_DOMAINS = SELECT DISTINCT domain FROM domains WHERE type = 'relay' AND domain = '${quote_mysql:$domain}'
ALIAS_DOMAINS = SELECT DISTINCT alias FROM domainalias WHERE alias = '${quote_mysql:$domain}'
domainlist local_domains = @ : pear.silverwraith.com : ${lookup mysql{VIRTUAL_DOMAINS}} : ${lookup mysql{ALIAS_DOMAINS}}
domainlist relay_to_domains = ${lookup mysql{RELAY_DOMAINS}}
hostlist relay_from_hosts = localhost : 192.168.0.0/24 : MY_IP
hide mysql_servers = localhost/vexim/vexim/password
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_content
acl_smtp_helo = acl_check_helo
av_scanner = clamd:/var/run/clamav/clamd.sock
#spamd_address = 127.0.0.1 783
daemon_smtp_ports = 25 : 465 : 587 : 543
tls_on_connect_ports = 465 : 543
exim_user = mailnull
exim_group = mail
never_users = root
host_lookup = *
Exim после обновления Perl пересобирался с поддержкой MySQL...