Postfix: chính xác tên miền bí danh là gì?


12

Tôi nghĩ rằng tôi đã hiểu "Tên miền bí danh" vì nó chỉ đơn giản là bí danh cho một tên miền khác! Vì vậy, khi tôi thiết lập một hộp thư như "info@main.com" và thêm "alias.com" làm bí danh tên miền cho "main.com", địa chỉ "info@alias.com" cũng sẽ hoạt động ... Nhưng không !

Vì vậy, tôi đã thêm các tên miền này:

  • chính.com
  • bí danh

Tôi đã tạo hộp thư này:

  • info@main.com

Sau đó, tôi đã ánh xạ các miền bí danh:

  • bí danh.com => chính.com

Và sau đó khi tôi gửi thư đến địa chỉ info@alias.com tôi nhận được lỗi này:

Recipient address rejected: User unknown in virtual mailbox table (state 13).

Tôi không muốn tạo bí danh cho mọi miền, vì tôi có một vài tên miền. Tôi cũng không muốn sử dụng ký tự đại diện (như thông tin @ *) vì cũng có những tên miền khác không phải là bí danh củamain.com

Vậy ... những thứ này chính xác là gì?


Tôi cũng mong như vậy và vẫn không hiểu tại sao không phải vậy.
Josh M.

Câu trả lời:


4

Lời giải thích có trong tài liệu: http://www.postfix.org/VIRTUAL_README.html#virtual_alias

Bạn muốn "hộp thư bí danh" aka virtual_mailbox_alias và virtual_mailbox_maps nhưng hãy nói về "tên miền bí danh": http://www.postfix.org/ADDRESS_CLASS_README.html#virtual_alias_ class


3
Tôi dường như không thể hiểu ý nghĩa của các tài liệu - làm thế nào để bạn có domain1.combí danh bất kỳ hộp thư <mailbox>@domain2.comnào?
Josh M.

2
@JoshM. Bạn có thể sử dụng bảng băm virtual_alias_mapsvới một mục nhập của biểu mẫu @domain1.com @domain2.com. Xem câu trả lời của tôi để biết chi tiết.
Sam Hanes

12

Thêm alias.comvào virtual_alias_domainslà bước đầu tiên chính xác, nhưng điều đó chỉ nói với Postfix rằng bạn muốn sử dụng tên miền đó cho bí danh. Nó không nói những bí danh nên là gì. Đối với điều đó, bạn cần sử dụng một bản đồ bí danh ảo.

Đầu tiên, thêm một cái gì đó như thế này vào main.cf:

virtual_alias_domains = alias.com
virtual_alias_maps = hash:/etc/postfix/virtual

Việc thêm virtual_alias_mapssẽ giúp bạn có một tệp ( /etc/postfix/virtual) được sử dụng làm bản đồ bí danh ảo. Nhưng những gì bạn đặt trong tập tin đó? Theo trang web ảo (5) :

Định dạng đầu vào cho lệnh postmap (1) như sau:

  pattern address, address, ...

Khi mẫu phù hợp với một địa chỉ thư, thay thế nó bằng địa chỉ tương ứng.

Với việc tra cứu từ các tệp được lập chỉ mục như DB hoặc DBM hoặc từ các bảng được nối mạng như NIS, LDAP hoặc SQL, mỗi truy vấn tên miền @ user tạo ra một chuỗi các mẫu truy vấn như được mô tả bên dưới. Mỗi mẫu truy vấn được gửi đến từng bảng tra cứu được chỉ định trước khi thử mẫu truy vấn tiếp theo, cho đến khi tìm thấy kết quả khớp.

...

@domain address, address, ...

Chuyển hướng thư cho người dùng khác trong miền đến địa chỉ.

Kết quả tra cứu có thể ghi lại địa chỉ: Khi kết quả có biểu mẫu @otherdomain, kết quả sẽ trở thành cùng một người dùng otherdomain. Điều này chỉ hoạt động cho địa chỉ đầu tiên trong kết quả tra cứu đa địa chỉ.

Do đó, việc này /etc/postfix/virtualsẽ đạt được bí danh tên miền đầy đủ mà bạn muốn:

# map any <user>@alias.com to the matching <user>@main.com
@alias.com     @main.com

Sau đó, vì tệp đó là bảng băm, bạn cần chạy postmap( giải thích , manpage ):

postmap /etc/postfix/virtual

Bạn có thể tìm thêm thông tin về các tên miền ảo trong Postfix Virtual Domain HOWTO và về các bí danh trong Địa chỉ Postfix Viết lại HOWTO .


Vì vậy, giao diện PostfixAdmin có lỗi , vì giao diện ( edit.php?table=aliasdomain) không nói với người dùng rằng thực tế sẽ không có bí danh nào xảy ra khi gắn cờ nó khi được bật.
Peter Krauss

2
Tôi sẽ không nói đó là một lỗi, chính xác, vì trên thực tế nó cấu hình một miền bí danh ảo. Thay vào đó, tôi nghi ngờ rằng PostfixAdmin mong bạn biết tên miền bí danh ảo Postfix là gì và bạn cũng cần thêm bí danh thực tế để khiến chúng làm bất cứ điều gì. Nó có lẽ sẽ tốt hơn nếu nó nói với bạn rằng, mặc dù.
Sam Hanes

1

@Josh M.

Tôi không biết liệu đây có phải là cách đúng đắn và / hoặc thực hành tốt hay không nhưng tôi đang sử dụng một cái gì đó như thế này:

virtual_alias_maps = regexp:/etc/postfix/domain_rewriting pgsql:/etc/postfix/pgsql/     virtual_alias_maps.cf

$ cat /etc/postfix/domain_rewriting 
/^(.*)@domain1.com$/     ${1}@domain2.com

1
Mặc dù không chính xác (nó sẽ làm những gì bạn mong đợi), sử dụng bảng regex sẽ kém hiệu quả hơn so với sử dụng bảng băm với @domain1.com @domain2.comcú pháp mà tôi đã nêu chi tiết trong câu trả lời của mình.
Sam Hanes

1

Đây là phiên bản ngắn của câu trả lời @ sam-hanes của tôi (hoạt động với tôi)

Trong virtual_alias_maps của bạn thêm:

@from.domain <tab> @to.domain

Trong dòng lệnh làm:

 postmap /path/to/yourvirtualalismapsfile

Trong tệp main.cf của bạn thêm:

virtual_alias_domains : from.domain

virtual_alias_domains nói với postfix rằng tất cả các địa chỉ hộp thư ở dạng hộp thư@from.domain đều là bí danh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.