من روی اوبونتو 12.04 میل سرور postfix را راه اندازی کردم و دامین خودم را در فایل /etc/postfix/virtual دامین خود را تعریف کردم. اما زمانیکه از دامین مورد نظر ایمیلی ارسال میکنم، ایمیل ارسال نمیشود و در log های ایمیل خطاهای زیر را دریافت میکردم.
سوال : چرا postfix نمیتواند فایل /etc/postfix/virtual را پیدا کند؟ در حالیکه من از مسیر مورد نظر ls میگرفتم فایل موجود بود.
دامینی که من استفاده میکنم دامین واقعی است و در سرور بایند برای این آدرس A و MX رکورد را تعریف کردم و از تنظیمات DNS ی هم مطمئن بودم.
جواب مشکل :
مشکل این بود که بعد از تغیر در فایل /etc/postfix/virtual حتما باید دو دستور زیر را به منظور اعمال تغییرات اجرا میشد.
کد PHP:
irtual is unavailable. open database /etc/postfix/virtual.db: No such file or directory
warning: hash:/etc/postfix/virtual lookup error for "example@mydomain.com"
warning: 705B58190E: virtual_alias_maps map lookup problem for example@mydomain.com -- deferring delivery
کد PHP:
warning: hash:/etc/postfix/v$ ls -la
total 96
drwxr-xr-x 3 root root 4096 Jul 4 08:46 .
drwxr-xr-x 102 root root 4096 Jun 24 06:23 ..
-rw-r--r-- 1 root root 274 Jun 24 06:23 dynamicmaps.cf
-rw-r--r-- 1 root root 1549 Jul 4 08:46 main.cf
-rw-r--r-- 1 root root 5531 Jun 24 06:23 master.cf
-rw-r--r-- 1 root root 19707 Feb 20 20:03 postfix-files
-rwxr-xr-x 1 root root 8729 Feb 20 20:03 postfix-script
-rwxr-xr-x 1 root root 26498 Feb 20 20:03 post-install
drwxr-xr-x 2 root root 4096 Feb 20 20:03 sasl
-rw-r--r-- 1 root root 43 Jul 4 08:27 virtual
-rw-r--r-- 1 root root 130 Jul 4 08:26 vmailbox
$ cat virtual
example@mydomain.com post-test@dotancohen.com
$ cat main.cf | grep virtual
virtual_mailbox_domains = mydomain.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_domains = fastupfront.com
virtual_alias_maps = hash:/etc/postfix/virtual
# virtual_alias_maps = /etc/postfix/virtual # I tried without the 'hash:' prefix as well.
جواب مشکل :
مشکل این بود که بعد از تغیر در فایل /etc/postfix/virtual حتما باید دو دستور زیر را به منظور اعمال تغییرات اجرا میشد.
کد PHP:
$ sudo postmap /etc/postfix/virtual
$ sudo service postfix reload