web-dev-qa-db-ja.com

Postfix / Dovecotは複数のドメインをサポートします

ドメイン名「olddomain.com」を使用するように構成されたMySQLバックエンドでPostfix/Dovecotを実行しているサーバーがあります。別のドメイン「newdomain.com」を使用するようにすべてを移行しています。Postfix/ Dovecot/Postfixadminもすべて移行する必要があります。ただし、しばらくの間、両方のドメイン名をサポートする必要があり、これはユーザーに対して透過的である必要があります。 「[email protected]」に送信される電子メールは「[email protected]」に到着する必要があり、ユーザーは「[email protected]」および「username @ newdomain」でログインできる必要があります(Postfixadmin/Dovecot) .com 'など.

名前付きのユースケースをサポートするためにこれを行う方法がわからないので、助けていただければ幸いです。

関連する構成のもの:

postconf -n

 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 
 dovecot_destination_recipient_limit = 1 
 html_directory = no 
 mail_owner = postfix 
 mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq
 manpage_directory = /usr/share/man
mynetworks_style = Host 
 newaliases_path =/usr/bin/newaliases
queue_directory= /var/spool/postfix
readme_directory = no 
 relay_domains = mysql:/etc/postfix/mysql_relay_domain_maps.cf 
 relayhost = ******* 
 sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
setgid_group = postdrop 
 smtpd_recipient_restrictions = permit_sasl_authenticated、permit_mynetworks、reject_u nauth_destination [。 .cf 
 virtual_mailbox_domains = mysql:/etc/postfix/sql_virtual_domain_maps.cf 
 virtual_mailbox_maps = mysql:/etc/postfix/sql_virtual_mailbox_maps.cf 
 virtual_transport = dovecot [.____]

sql_virtual_mailbox_maps.cf:

 password = **** 
 hosts = localhost 
 dbname = pf_adm 
 query = SELECT CONCAT(maildir、 'Maildir /')AS maildir FROM namespace WHERE username = '%s' AND active = '1' 

sql_virtual_domain_maps.cf:

 user = **** 
 password = **** 
 hosts = localhost 
 dbname = pf_adm 
 query = SELECT domain FROM domain WHERE domain = '%s' AND backupmx = '0' AND active = '1' 

sql_virtual_alias_maps.cf:

 user = **** 
 password = **** 
 hosts = localhost 
 dbname = pf_adm 
 query = SELECT goto FROM alias WHERE address = '%s' AND active = '1' 

doveconf -n

#2.1.9:/etc/dovecot/dovecot.conf 
#OS:Linux3.4.5-強化されたi686Gentoo BaseSystemリリース2.1ext4 
 auth_verbose = yes 
 first_valid_gid = 12 
 first_valid_uid = 8 
 last_valid_gid = 12 
 last_valid_uid = 8 
 mail_gid = 12 
 mail_location = maildir:/ var/mail /%d/%n/Maildir/:INDEX=/var/mail/%d/%n/indexes
mail_uid = 8 
 namespace inbox {
 inbox = yes 
 location = 
メールボックスドラフト{
 special_use =\Drafts 
} 
メールボックスジャンク{
 special_use =\Junk 
 } 
メールボックス送信{
 special_use =\Sent 
} 
メールボックス "送信済みメッセージ" {
 special_use =\Sent 
} 
メールボックスのゴミ箱{
 special_use =\Trash 
} 
プレフィックス= 
} 
 passdb {
 args = /etc/dovecot/dovecot-sql.conf.ext
driver= sql 
} 
 postmaster_address = [email protected] 
 protocols = imap 
 service auth {
 unix_listener/var/spool/postfix/private/auth{
group= postfix 
 mode = 0660 
 user = postfix 
} 
 unix_listener auth-userdb {
 group = mail 
 mode = 0600 
 user = mail 
} 
} 
 ssl_cert = 
 

ボーナス情報(必要な場合)、ユーザーは次のように保存されます: + --------------------- --- + ------------------------- + ------------ + ------- -------- + |ユーザー名| maildir | local_part |ドメイン| + ------------------------ + ----------------- -------- + ------------ + --------------- + | [email protected] | olddomain.com/username/ |ユーザー名| olddomain.com | + ------------------------ + --------------- ---------- + ------------ + --------------- +
4
siebz0r

すべてのアドレスに完全なドメイン名を永続的に要求することは、ここの裏側であなたを悩ませています。

持っているのは1つのドメインだけなので、実際には必要ありません。したがって、簡単な解決策は、SQLルックアップを変更してローカルパーツのみに作用するようにすることです。

新しいドメインをvirtual_mailbox_domainsに追加し、virtual_mailbox_mapsでローカルパーツルックアップのみを実行します。

ドメインとその中のすべてのユーザーの両方が受け入れられ、配信されます。

Virtual_mailbox_domainsに複雑なクエリを使用しても、役に立たない可能性があります。
virtual_mailbox-domainsにドメインをリストするだけです:

virtual_mailbox_domains = olddomain, newdomain
3
adaptr