Sử dụng Postfix để chuyển tiếp thư đến một tên miền đến cùng một địa chỉ tại một tên miền khác


8

Có cách nào để định cấu hình Postfix để chấp nhận bất kỳ thư nào cho một tên miền (bắt tất cả), sau đó chuyển tiếp email đó đến cùng một người nhận ở một tên miền khác, không biết liệu người nhận có thực sự tồn tại không?

Tôi sử dụng Postfix với sự hỗ trợ của MySQL cho các tài khoản ảo.

Câu trả lời:


8

Không, điều này là không thể trực tiếp. Có một ngoại lệ làm thế nào nó có thể hoạt động được mô tả trong http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Một giải pháp thô thiển khác là sử dụng SQL (lớp nền + concat) để xử lý việc này cho bạn trong virtual_alias_maps.

Chỉnh sửa : Ồ. Có một khả năng cuối cùng. Sử dụng cơ chế ủy quyền chính sách và trả lại REDIRECT localpart@other-domain.examplenơi bạn cần và DUNNOnếu bạn không muốn viết lại.

Chỉnh sửa 2 : Lấy cảm hứng từ Squidly (nhưng giải pháp của anh ta không hoạt động!) Bạn có thể thiết lập

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

và trong tập tin đó

/^(.*)@adomain\.example/    $(1)@other-domain.example

(Coi chừng dấu chấm đã thoát (\.) Trong cột đầu tiên.) Cá nhân tôi thích phiên bản này.


giải pháp thứ ba làm việc cho tôi. tuy nhiên tôi đã phải cài đặt postfix-pcregói (ubfox 12.10)
scytale

1

Loại bảng pcre không có sẵn trên hệ thống của tôi, vì vậy tôi đã làm như sau:

  • Trong /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • Trong /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

Nếu bạn sử dụng MySQL làm đầu lưu trữ, tôi tin rằng bạn có thể chỉ định bắt tất cả về phía trước như thế này:

Bảng chuyển tiếp

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

Nếu tôi đọc đúng tài liệu, điều đó có nghĩa là user1@example.com bây giờ sẽ được chuyển tiếp đến user1@yoursite.com, v.v.

Tôi tìm thấy điều này trong hướng dẫn howtoforge này


0

Không trực tiếp có thể? Tôi thấy nó rất đơn giản và trực tiếp không có SQL, biểu thức chính quy hoặc cơ chế chính sách.

Trong main.cf:

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

Trong /etc/postfix/virtual:

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

Gửi e-mail kiểm tra từ máy chủ:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

Và kết quả thực tế trong mail.log (Tôi có amavis trên cổng 10025 đang chạy):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

Dòng khóa tách biệt để nhấn mạnh:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Tùy thuộc vào cách bạn thiết lập Postfix của mình, bạn có thể sử dụng bí danh để chuyển tiếp tất cả thư.

biên tập

Ngoài ra, bạn có thể thiết lập một chuyển hướng sẽ làm điều đó cho bạn một cách dễ dàng.

Trong /etc/postfix/main.cf thêm điều này:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

Sau đó, trong /etc/postfix/forward_bcc.pcre thêm điều này:

/^user@olddomain.com/ user@newdomain.com

Đây là một chút hack nhưng nó sẽ hoạt động để chuyển tiếp người dùng cụ thể từ tên miền này sang tên miền khác.

Bạn cũng có thể muốn xem xét này trang cho làm thế nào để làm một số viết lại trong Postfix nó tự.


Bạn có thể cụ thể hơn không? Tôi biết tôi có thể chỉ định @somedomain.comchuyển tiếp tất cả thư đến một địa chỉ cụ thể , nhưng tôi muốn biết liệu tôi có thể chuyển tiếp đến cùng một người nhận không.
Abraham Vegh

trong / etc / bí danh thiết lập nó như thế này. $ tên người dùng: $username@newdomain.com
Squidly

@Squidly Chỉnh sửa của bạn không phải là biểu thức thông thường và sẽ không hoạt động. Bạn nhận xét về / etc / bí danh sẽ không hoạt động vì OP chỉ có người dùng ảo.
mailq

@mailq. Đó là TRỰC TIẾP trên máy chủ CỦA TÔI ngay bây giờ. Nó hoạt động hoàn hảo cho nhiều chuyển hướng. Ngoài ra, ông không nói đây chỉ là những người dùng ảo. Nó cũng đưa ra các lựa chọn để xem xét.
Mực
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.