2013-08-16 34 views
0

我有4個不同的用戶需要他們自己的IP地址發送郵件到一個特定的地址。我怎樣才能配置這些用戶通過自己的IP地址發送? 我可以在我的vhost配置中將它作爲傳輸方式嗎? 一個問題是,選擇的是什麼意思,它必須是可擴展的,以便在沒有啓動/停止後綴的情況下添加第5個,可能是重新加載。但從我們的虛擬主機數據庫中提取路由是理想的解決方案。如何讓後綴通過各種接口發送?

broken_sasl_auth_clients = no 
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_protocols = ipv4 
mail_owner = postfix 
mailq_path = /usr/bin/mailq 
manpage_directory = /usr/share/man 
newaliases_path = /usr/bin/newaliases 
queue_directory = /var/spool/postfix 
readme_directory = no 
sample_directory = /etc/postfix 
sendmail_path = /usr/sbin/sendmail 
setgid_group = postdrop 
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination 
smtpd_sasl_auth_enable = yes 
smtpd_sasl_authenticated_header = no 
smtpd_sasl_local_domain = 
smtpd_sasl_security_options = noanonymous 
smtpd_tls_CAfile = /etc/ssl/postfix/telecomm.com.crt 
smtpd_tls_auth_only = no 
smtpd_tls_cert_file = /etc/ssl/postfix/telecomm.com.crt 
smtpd_tls_key_file = /etc/ssl/postfix/telecomm.com.key 
smtpd_tls_loglevel = 3 
smtpd_tls_received_header = yes 
smtpd_tls_session_cache_timeout = 3600s 
smtpd_use_tls = yes 
tls_random_source = dev:/dev/urandom 
unknown_local_recipient_reject_code = 550 
virtual_alias_maps = pgsql:/etc/postfix/pgsql/virtual_alias_maps.cf 
virtual_gid_maps = static:5000 
virtual_mailbox_base = /var/vmail 
virtual_mailbox_domains = pgsql:/etc/postfix/pgsql/virtual_mailbox_domains.cf 
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql/virtual_mailbox_maps.cf 
virtual_uid_maps = static:5000 

***** Database tables****** 

public | admin     | table | postfixadmin 
public | alias     | table | postfixadmin 
public | alias_domain   | table | postfixadmin 
public | config    | table | postfixadmin 
public | config_id_seq   | sequence | postfixadmin 
public | domain    | table | postfixadmin 
public | domain_admins   | table | postfixadmin 
public | fetchmail    | table | postfixadmin 
public | fetchmail_id_seq  | sequence | postfixadmin 
public | log     | table | postfixadmin 
public | mailbox    | table | postfixadmin 
public | quota     | table | postfixadmin 
public | quota2    | table | postfixadmin 
public | vacation    | table | postfixadmin 
public | vacation_notification | table | postfixadmin 

回答

3

您將需要傳輸的每個IP你在你的master.cf

user1 unix -  -  n  -  -  smtp 
     -o syslog_name=postfix-user1 
     -o smtp_bind_address=1.2.3.4 

user2 unix -  -  n  -  -  smtp 
     -o syslog_name=postfix-user2 
     -o smtp_bind_address=1.2.3.5 

會使用在你的main.cf

sender_dependent_default_transport_maps = hash:/etc/postfix/transport.cf

#/etc/postfix/transport.cf 
[email protected] user1: 
[email protected] user2: 

有了這個念頭,你可以將查找類型更改爲mysql/pgsql以查詢db,bu t您需要在您的傳輸中定義master.cf

+0

這可能是完美的。我的所有用戶都默認設置爲數據庫中的「虛擬」傳輸。我使用這個安裝方法構建了https://wiki.gentoo.org/wiki/Complete_Virtual_Mail_Server。如果我理解正確,用戶信息將正常來自數據庫並按正常方式打到默認傳輸,然後master.cf將通過用戶名建立「標記」,然後將消息向上提取到指定的接口。我是否理解正確?如果是這樣,這是完美的。如果不是,我錯過了什麼? – brad

+0

您的所有用戶的收件郵件將由'virtual'傳輸處理,並使用'sender_dependent_default_transport_maps'傳出的郵件將由返回的傳輸處理。 – clement

+0

我添加了信息並創建了一個user1並設置他離開我的ipv6地址,並且沒有任何郵件流量擊中該ip。我也對/etc/postfix/transport.cf運行了postmap。有什麼想法嗎? http://bpaste.net/show/FFqSlCitMQM1ImEs7T4j/ http://bpaste.net/show/4gZWD0CVBkSz8T4a2Jtk/ – brad

0

另一個選擇是使用單獨的Postfix實例 - 每個綁定到一個IP地址 - 爲此。這也允許個人的橫幅等