Terkait dengan penanganan virtual domain pada iRedMail yang menggunakan Postfix sebagai MTA (Mail Transfer Agent), kita dapat melihat pada main.cf pada baris-baris berikut ini:

transport_maps = proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf, proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf

Penjelasannya adalah sebagai berikut

  1. transport_maps
    Isi pada transport_maps adalah:
    proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf, proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf

    Isi dari /etc/postfix/mysql/transport_maps_domain.cf adalah:
    user        = vmail
    password    = password8sBqJ
    hosts       = 127.0.0.1
    port        = 3306
    dbname      = vmail
    query       = SELECT transport FROM domain WHERE domain=’%s’ AND active=1

    Query kita sederhanakan menjadi semua domain menjadi:
    SELECT domain, transport FROM domain WHERE active=1

    Hasilnya:

    Setting ini menunjukkan bahwa pengiriman akan diteruskan melalui dovecot. Definisi devocet dapat kita lifat pada master.cf pada baris berikut ini:
    # Use dovecot deliver program as LDA.
    dovecot unix    –       n       n       –       –      pipe
        flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${domain} -m ${extension}

  2. virtual_mailbox_domains
    Setting dari virtual_mailbox_domains adalah:
    proxy:mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf .

    Jika kita melihat isi dari /etc/postfix/mysql/virtual_mailbox_domains.cf adalah sebagai berikut:
    user        = vmail
    password    =passordW8sBqJ
    hosts       = 127.0.0.1
    port        = 3306
    dbname      = vmail
    query       = SELECT domain FROM domain WHERE domain=’%s’ AND backupmx=0 AND active=1 UNION SELECT alias_domain.alias_domain FROM alias_domain,domain WHERE alias_domain.alias_domain=’%s’ AND alias_domain.active=1 AND alias_domain.target_domain=domain.domain AND domain.active=1 AND domain.backupmx=0

    Kemudian kita masuk ke phpmyadmin dan menjalankan query yang disederhanakan menjadi semua domain (tanpa domain=’%s’):
    SELECT domain FROM domain WHERE backupmx=0 AND active=1 UNION SELECT alias_domain.alias_domain FROM alias_domain,domain WHERE alias_domain.active=1 AND alias_domain.target_domain=domain.domain AND domain.active=1 AND domain.backupmx=0

    Dan hasilnya:

  3. virtual_mailbox_maps
    Setting dari virtual_mailbox_maps adalah:
    proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf

    Jika kita melihat proxy:mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf maka isinya adalah seperti berikut ini:
    user        = vmail
    password    = passwordtW8sBqJ
    hosts       = 127.0.0.1
    port        = 3306
    dbname      = vmail
    query       = SELECT CONCAT(mailbox.storagenode, ‘/’, mailbox.maildir, ‘/Maildir/’) FROM mailbox,domain WHERE mailbox.username=’%s’ AND mailbox.active=1 AND mailbox.enabledeliver=1 AND domain.domain = mailbox.domain AND domain.active=1

    Query kita sederhanakan menjadi semua user (tanpa username=’%s’, dan kita tambahkan username):
    SELECT username, CONCAT(mailbox.storagenode, ‘/’, mailbox.maildir, ‘/Maildir/’) FROM mailbox,domain WHERE  mailbox.active=1 AND mailbox.enabledeliver=1 AND domain.domain = mailbox.domain AND domain.active=1

    Dan hasilnya adalah:

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Virtual domain Postfix pada iRedmail
Ada yang dapat saya bantu ?