Điểm:1

sau khi nâng cấp postfix 3.5.6, ánh xạ bí danh ảo tới nhiều người nhận được coi là tên đơn có chứa dấu phẩy

lá cờ de

Mới nâng cấp lên debian bullseye postfix 3.5.6 từ debian wheezy postfix 2.9.6.

Chúng tôi sử dụng bản đồ bí danh ảo cho nhiều người nhận, như thế này:

[email protected] @theidsp-network.inter-realm.net,[email protected]

Do đó, các thư gửi đến [email protected] đều được chuyển tiếp đến [email protected] và tới [email protected]. Nó đã hoạt động chính xác trong nhiều năm.

Trước đây chúng tôi đã học được từ http://www.postfix.org/virtual.5.html điều đó thứ tự của nhiều người nhận là quan trọng. "Khi kết quả có dạng @otherdomain, kết quả sẽ trở thành cùng một người dùng trong otherdomain. Điều này chỉ hoạt động cho địa chỉ đầu tiên trong kết quả tra cứu nhiều địa chỉ." Vì vậy, chúng tôi đặt ký tự đại diện @ người nhận trước.

Sau khi nâng cấp hậu tố, smtpd dường như đang cố chuyển tiếp tới một người nhận duy nhất "[email protected],jim"@space-port-pros.com.

Vì người dùng không tồn tại, thư này sẽ bị bỏ qua.

Đây là một số đầu ra từ mail.log:

Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: kết nối với hệ thống con private/proxymap
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: gửi yêu cầu attr = tra cứu
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: gửi bảng attr = mysql:/etc/postfix/mysql-virtual_forwardings.cf
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: gửi attr flags = 540736
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: gửi khóa attr = [email protected]
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: ổ cắm private/proxymap: thuộc tính mong muốn: trạng thái
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: tên thuộc tính đầu vào: trạng thái
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: giá trị thuộc tính đầu vào: 0
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: ổ cắm private/proxymap: thuộc tính mong muốn: giá trị
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: tên thuộc tính đầu vào: giá trị
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: giá trị thuộc tính đầu vào: @theidsp-network.inter-realm.net,[email protected]
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: ổ cắm private/proxymap: thuộc tính mong muốn: (dấu kết thúc danh sách)
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: tên thuộc tính đầu vào: (kết thúc)
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: dict_proxy_lookup: table=mysql:/etc/postfix/mysql-virtual_forwardings.cf flags=lock|fold_fix|utf8_request
 [email protected] -> status=0 [email protected],[email protected]
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: maps_find: virtual_alias_maps: proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf(0,lock|fold_fix|utf8
_request): [email protected] = @theidsp-network.inter-realm.net,[email protected]
Ngày 14 tháng 4 10:45:17 mail7-057 sslmx/smtpd[8640]: mail_addr_find: [email protected] -> @theidsp-network.inter-realm.net,[email protected]
...
Ngày 14 tháng 4 10:45:17 mail7-057 postfix/smtp[8669]: 55E65C895: to=<"[email protected],jim"@space-port-pros.com>, orig_to=< jimays@theids
p.net>, relay=mail7-052.idsp56.net[192.168.56.52]:52025, delay=0.06, delays=0.01/0.02/0.01/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: xếp hàng là 5F628
A882)

Dưới đây là các đoạn trích từ nhật ký từ tháng 6 cho thấy rằng chuyển tiếp trước đó dẫn đến hai dòng riêng biệt với status=sent, một qua truyền tải smtp tới [email protected] và một qua truyền tải lmtp-g tới jimays@theidsp-network .inter-realm.net.

Ngày 20 tháng 6 06:30:58 mail7-057 sslmx/smtpd[28956]: kết nối từ mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:30:58 mail7-057 sslmx/smtpd[28956]: Kết nối TLS ẩn danh được thiết lập từ mail7-055.idsp56.net[192.168.56.55]: TLSv1.2 với mật mã AECDH-AES256-SHA (256/256 bit )
Ngày 20 tháng 6 06:30:58 mail7-057 sslmx/smtpd[28956]: B91A42BE4: client=mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:30:58 mail7-057 cleanup-srs/cleanup[28963]: B91A42BE4: message-id=<[email protected]>
Ngày 20 tháng 6 06:30:58 mail7-057 postfix/qmgr[19327]: B91A42BE4: from=<SRS0=Z5tX=LO=connect.match.com=bounces-MA-1-858-ea0868c4-498f-401a-b6f1- [email protected] dimensions-space-port.net>, size=47942, nrcpt=2 (hàng đợi đang hoạt động)
Ngày 20 tháng 6 06:30:58 mail7-057 sslmx/smtpd[28956]: ngắt kết nối khỏi mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:30:58 mail7-057 postfix/smtp[28966]: Kết nối TLS ẩn danh được thiết lập tới mail7-052.idsp56.net[192.168.56.52]:52025: TLSv1.2 với mật mã AECDH-AES256-SHA (256/ 256 bit)
Ngày 20 tháng 6 06:30:58 mail7-057 lmtp-g/lmtp[28965]: Đã thiết lập kết nối TLS đáng tin cậy tới lmtp7-g.inter- dimensions-space-port.net[216.184.19.228]:64007: TLSv1 với mật mã AES256- SHA (256/256 bit)
Ngày 20 tháng 6 06:30:58 mail7-057 postfix/smtp[28966]: B91A42BE4: to=<[email protected]>, relay=mail7-052.idsp56.net[192.168.56.52]:52025, độ trễ=0,16, độ trễ=0,04/0,02/0,02/0,08, dsn=2.0.0, trạng thái=đã gửi (250 2.0.0 Ok: xếp hàng đợi là C66855B94)
Ngày 20 tháng 6 06:30:59 mail7-057 sslmx/smtpd[28956]: kết nối từ mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:30:59 mail7-057 sslmx/smtpd[28956]: Kết nối TLS ẩn danh được thiết lập từ mail7-055.idsp56.net[192.168.56.55]: TLSv1.2 với mật mã AECDH-AES256-SHA (256/256 bit )
Ngày 20 tháng 6 06:30:59 mail7-057 sslmx/smtpd[28956]: 9D1D12CA5: client=mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:30:59 mail7-057 cleanup-srs/cleanup[28963]: 9D1D12CA5: message-id=<[email protected]>
Ngày 20 tháng 6 06:30:59 mail7-057 postfix/qmgr[19327]: 9D1D12CA5: from=<SRS0=Z5tX=LO=connect.match.com=bounces-MA-1-858-ea0868c4-498f-401a-b6f1- [email protected] dimensions-space-port.net>, size=50423, nrcpt=1 (hàng đợi đang hoạt động)
Ngày 20 tháng 6 06:30:59 mail7-057 sslmx/smtpd[28956]: ngắt kết nối khỏi mail7-055.idsp56.net[192.168.56.55]
Ngày 20 tháng 6 06:31:07 mail7-057 lmtp-g/lmtp[28965]: B91A42BE4: to=<[email protected]>, relay=lmtp7-g.inter- dimensions-space-port .net[216.184.19.228]:64007, độ trễ=8.9, độ trễ=0.04/0.02/0.12/8.7, dsn=2.0.0, trạng thái=đã gửi (250 Ok)
Ngày 20 tháng 6 06:31:07 mail7-057 postfix/qmgr[19327]: B91A42BE4: đã xóa

Các http://www.postfix.org/COMPATIBILITY_README.html đã không đề cập bất cứ điều gì cụ thể về thay đổi hành vi trong bản đồ bí danh ảo.

mysql-virtual_forwardings.cf có định dạng chuẩn được tạo bởi ISPConfig.

người dùng = ispconfig
mật khẩu = đã được xử lý lại
dbname = idsp_mail7_062
bảng = mail_forwarding
select_field = đích
where_field = nguồn
điều kiện bổ sung = và hoạt động = 'y' và server_id = 81
máy chủ = 192.168.56.121

Phần thích hợp của main.cf gọi tệp là:

virtual_alias_maps = regexp:/etc/postfix/regexp-virtual_forwardings__admin.cf, proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, proxy:mysql:/etc
/postfix/mysql-virtual_email2email.cf

Bảng virtual_forwardings trông giống như:

MariaDB [idsp_mail7_057]> select * from mail_forwarding where source='[email protected]';
+----------------+------------+-------------+------ ---------+----------------+----------------+------ -----+---------------------+----------------------- -------------------------- + --------- + ----- ----+
| chuyển tiếp_id | hệ thống_userid | sys_groupid | sys_perm_user | sys_perm_group | hệ thống_perm_other | máy chủ_id | nguồn | đích | loại | năng động |
+----------------+------------+-------------+------ ---------+----------------+----------------+------ -----+---------------------+----------------------- -------------------------- + --------- + ----- ----+
| 201 | 2 | 2 | vui vẻ | vui vẻ | | 69 | [email protected] | @theidsp-network.inter-realm.net,[email protected] | chuyển tiếp | y |
+----------------+------------+-------------+------ ---------+----------------+----------------+------ -----+---------------------+----------------------- -------------------------- + --------- + ----- ----+
1 hàng trong bộ (0,001 giây)

Tăng đăng nhập smtpd -v -v và điều này hiển thị trong nhật ký:

dict_proxy_lookup: table=mysql:/etc/postfix/mysql-virtual_forwardings.cf flags=lock|fold_fix|utf8_request
 [email protected] -> status=0 [email protected],[email protected]
Ngày 20 tháng 4 16:44:37 mail7-057 sslmx/smtpd[9561]: maps_find: virtual_alias_maps: proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf(0,lock|fold_fix|utf8
_request): [email protected] = @theidsp-network.inter-realm.net,[email protected]
Ngày 20 tháng 4 16:44:37 mail7-057 sslmx/smtpd[9561]: mail_addr_find: [email protected] -> @theidsp-network.inter-realm.net,[email protected]

để có vẻ như quá trình tra cứu đang diễn ra chính xác, và sau đó vẫn chỉ có một công văn xảy ra thay vì hai.

Jim At Your Service avatar
lá cờ de
Xin chào @anx. Tự hỏi liệu bạn có đang gợi ý rằng có lỗi trong postfix smtpd hay không. Chúng tôi có nhiều bản ghi sử dụng định dạng ATotherdomain,somewhereATsomespecific.com này để chuyển tiếp cả ATotherdomain cộng với một số địa chỉ email cụ thể. Tự hỏi nếu bạn đang nhìn thấy một cách giải quyết cụ thể cho điều đó.
Jim At Your Service avatar
lá cờ de
@anx. Đã xác nhận rằng mọi thứ hoạt động chính xác nếu tôi thay thế mục nhập bằng jimaysATtheidsp-network.inter-realm.net,jimATspace-port-pros.com, vì vậy thực sự tôi đang cân nhắc ý tưởng của bạn về việc thay đổi tất cả các mục nhập của chúng tôi như một giải pháp thay thế.Nhưng hmm, điều gì đã thực sự xảy ra ở đây?
anx avatar
lá cờ fr
anx
Mặc dù tôi chưa đi sâu vào chi tiết cụ thể, nhưng tôi tin rằng ngay cả bất kỳ tài liệu nhận thức hoặc thực tế nào *mơ hồ* về cách xử lý danh sách địa chỉ không được trích dẫn đều đáng bị coi là lỗi. Vui lòng báo cáo ngược dòng này, bạn có thể tạo trình sao chép ngắn hơn bằng cách sử dụng các bước (sqlite, không phải mysql) mà tôi đã nêu bên dưới.
Điểm:0
lá cờ fr
anx

Nó chạy vào nó khi và chỉ khi sử dụng biểu mẫu "@otherdomain", vì vậy nó có thể được làm việc xung quanh:

  1. bằng cách di chuyển từ không dùng nữa bảng/select_field/.. hình thức để xác định truy vấn trong bạn mysql-*.cf tệp và bắt chước trong SQL những gì hậu tố không còn nữa, hoặc
  2. bằng cách thay đổi vĩnh viễn bảng của bạn để mở rộng toàn bộ các bí danh đó người dùng @ tên miền mẫu đơn.

Cả hai cách giải quyết sẽ liên quan đến một truy vấn có chứa một cái gì đó như TRƯỜNG HỢP KHI đích LIKE "@%" THÌ SUBSTR(source,1,INSTR(source,"@"))||destination Đích ELSE END để SQL chỉ nối hộp thư nguồn nếu quá trình tra cứu bắt đầu bằng @. Xem xét cẩn thận điều gì sẽ xảy ra với các tiện ích mở rộng địa chỉ như người dùng+tiện ích mở rộng@onedomain, nếu bạn đang sử dụng chúng!

Khi tìm kiếm các lý do có thể cho hành vi đã thay đổi, tôi đã tìm thấy một số công việc làm lại trích dẫn/bỏ trích dẫn rfc822 có thể có liên quan, CHANGELOG đề cập:

tuyên truyền chính xác phần mở rộng địa chỉ

từ "aa bb+ext"@example.com thành "cc dd+ext"@other.example

Mặc dù người ta có thể lập luận như nhau rằng toàn bộ tính năng chỉ hoạt động khi được thực hiện trên mục nhập đầu tiên trong danh sách địa chỉ điều là một lỗi ở nơi đầu tiên. Bước hậu xử lý như vậy phải được áp dụng cho tất cả các phần tử của tập hợp kết quả mà không có bất kỳ sự mơ hồ nào có thể có giữa hộp thư/phần mở rộng/dấu phân cách.


Tôi đã có thể sao chép sự nhầm lẫn loại danh sách/hộp thư đó trong Postfix 3.4.13 (do Ubuntu phân phối) bằng cách sử dụng một trong hai truy vấnbảng/select_field/.., có hay không bản đồ proxyvà với kết quả nhiều hàng hoặc kết quả được phân tách bằng dấu phẩy. Bạn có thể thực hiện các bước gần như hoạt động sau đây vào một trình sao chép đang hoạt động để báo cáo ngược dòng. Chắc chắn chỉ chạy các bước này trên hộp kiểm tra.

thoát 1 # MẤT DỮ LIỆU! CHỈ CHẠY TRÊN MÁY ẢO ĐỂ THỬ NGHIỆM!
postconf virtual_transport=lỗi
postconf virtual_alias_maps=proxy:sqlite:/etc/postfix/repro.cf
postconf virtual_alias_domains=e.invalid
postconf debug_peer_list=[::1]
sqlite3 /etc/postfix/repro.sqlite3 <<'EOF'
TẠO BẢNG repro(s text, d text);
CHÈN VÀO (các, d) GIÁ TRỊ repro ("[email protected]", "@e.invalid,[email protected]");
CHÈN VÀO (các, d) GIÁ TRỊ repro ("[email protected]", "[email protected],[email protected]");
EOF
con mèo >/etc/postfix/repro.cf <<'EOF'
dbpath=/etc/postfix/repro.sqlite3
truy vấn=CHỌN d TỪ repro WHERE s='%s'
EOF
# gửi thư kiểm tra (smtp không được thiết lập, vì smtp tạo ra nhật ký đẹp hơn)
printf %b 'nhập smtplib;\nsmtplib.SMTP("::1").sendmail("","[email protected]", "")' | trăn3
printf %b 'nhập smtplib;\nsmtplib.SMTP("::1").sendmail("","[email protected]", "")' | trăn3
# kiểm tra nhật ký
Jim At Your Service avatar
lá cờ de
Câu trả lời của bạn rất thấu đáo và hữu ích và đã được tiếp thu với lòng biết ơn, sẽ được cập nhật ngược dòng trong thời gian tới với một tài liệu tham khảo tại đây. Giải pháp thay thế của bạn là hữu ích nhất đối với cá nhân tôi và nhóm của chúng tôi ngay bây giờ, vì giải pháp này cho thấy một con đường phía trước để gửi thư trở lại, chỉ cần thay đổi ATdomain thành một userATdomain đầy đủ. Chúng tôi có thể chạy một bản cập nhật SQL để thực hiện tất cả điều đó cùng một lúc. Sau đó, tất cả những gì chúng tôi phải làm là đi qua hộp thư tổng hợp của chúng tôi và phân phối lại tất cả thư đó trong vài tuần qua.... Cảm ơn. Đây là bài viết đầu tiên của tôi và tự hỏi làm thế nào để đánh dấu giải quyết.
Jim At Your Service avatar
lá cờ de
Máy chủ thư của chúng tôi hiện đã được sửa nhờ @anx và lib_mysqludf_preg: `update mail_forwarding set Destination=concat(regexp_replace(source,'@.*$',''),destination) where đích like '@%';`
Jim At Your Service avatar
lá cờ de
...đã cố gắng nhấp vào dấu kiểm, cần 15 điểm danh tiếng...câu trả lời của bạn chắc chắn đã giải quyết được vấn đề của chúng tôi, cảm ơn

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.