Điểm:1

Postfix + Dovecot, Sieve execution flow and auto reply

lá cờ in

I'm using Postfix and Dovecot LMTP on my server. My question is how do I create a silently discarding recipient address and respond auto reply? Also I want to learn Postfix and Dovecot execution control flow. This is part of my Postfix main.cf:

alias_maps = hash:/etc/aliases

# Virtual domains
virtual_uid_maps        = static:5000
virtual_gid_maps        = static:5000
virtual_minimum_uid     = 115
virtual_mailbox_base    = /home/vmail
virtual_mailbox_maps    = mysql:/etc/postfix/mysql/mailbox.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/domains.cf
virtual_alias_maps      = mysql:/etc/postfix/mysql/aliases.cf
virtual_transport       = lmtp:unix:private/dovecot-lmtp

In my /etc/aliases:

devnull: /dev/null

In my humble understanding Postfix handles recipient address exists or not right? If recipient address was existed then transport to Dovecot LMTP to handle local delivery. Is it possible to conditional transport in Postfix? For example I want to create a test mail address such as [email protected]. Which account is aliased to devnull. My goal is recipient [email protected] silently discarded incoming mail and auto reply PONG message to sender for testing purpose. If recipient address wasn't [email protected] then transport to Dovecot-lmtp. I tried to use Dovecot Sieve filter plugin with vacation extension to handle auto reply. But in my system's mail.log:

# replaced actual domain name with DOMAIN

postfix/lmtp[13532]: 62EBD333697: to=<devnull@DOMAIN>, orig_to=<ping@DOMAIN>, relay=DOMAIN[private/dovecot-lmtp], delay=538, delays=538/0.02/0.01/0.44, dsn=5.1.1, status=bounced (host DOMAIN[private/dovecot-lmtp] said:
 550 5.1.1 <devnull@DOMAIN> User doesn't exist: devnull@DOMAIN (in reply to RCPT TO command))

So, I guess Dovecot Sieve filter plugin doens't work with account which doesn't exist. Is it possible to execute Sieve script before checking user's mailbox? If so I don't even need to use devnull blackhole alias. I can do that in my sieve script something like this:

if address :matches "To" "ping@*" {
    vacation
        :seconds 1
        "PONG";
    discard;
}

UPDATED:

I created a user named ping in my database and I got a response mail in my GMail account. But it wasn't really a reply mail. It was a new mail in my inbox. Then I tried to manually reply using Apple mail GUI software. It works as expected. Then I go to gmail and press on menu show original.

From Apple Mail's message-id domain part was correct virtual domain of sender. From Apple mail

But from Dovecot/Sieve's message-id domain part was my server's hostname. From sieve vacation

I don't know why it happens. But my guess is maybe it's because domain name was changed? In working example from Apple Mail software it was correct virtual domain of sender. But from sieve auto-reply it was changed my server's real hostname.

Another Postfix log from /var/log/mail.log

postfix/cleanup[1329]: EE83F333699: message-id=<dovecot-sieve-1623257247-953496-0@HOSTNAME>

PS: I have only few days experience with Postfix, Dovecot and few hours experience with sieve script. I'm so newbie. I hope my question and goal was clear enough. Ask me anything if you need more information.

lá cờ jp
Dom
Sàng chỉ được sử dụng khi người dùng tồn tại cho Postfix VÀ Dovecot. Rõ ràng, Dovecot của bạn không biết người dùng. Bạn đã xác định chính xác quy tắc Sàng, vì vậy hãy tạo người dùng (hoặc định cấu hình Dovecot để sử dụng cùng một DB làm hậu tố): nó sẽ chấp nhận thư, trả lời kỳ nghỉ và loại bỏ thư. Nhìn vào các bản ghi sàng quá !
jeefo avatar
lá cờ in
Chào Dom. Tôi đã tạo một người dùng có tên `ping` trong cơ sở dữ liệu của mình như bạn đã đề xuất. Tôi đã nhận được phản hồi khi gửi thư đến `[email protected]`. Nhưng thư phản hồi của tôi không thực sự là thư trả lời. Nó thực sự là thư mới trong hộp thư đến của tôi. Làm cách nào tôi có thể nhận được câu trả lời thực tế bằng cách sử dụng kỳ nghỉ sàng?
lá cờ jp
Dom
Bạn có thể cập nhật câu hỏi của mình với thư mới nhận được và nhật ký rây/dovecot không?
jeefo avatar
lá cờ in
Rất tiếc, tôi không có tệp nhật ký nào cho Sàng. Không tìm thấy làm thế nào để đăng nhập vào thời điểm đó. Đối với Dovecot, tôi đã cố gắng tìm nhật ký hữu ích khi thực thi lệnh `sudo doveadm log find`. Hầu hết nhật ký được trỏ đến `/var/log/mail.log`. Và không có bất kỳ nhật ký hữu ích nào.BTW Tôi đã cập nhật câu hỏi của mình để biết thêm thông tin. Cảm ơn bạn.
Điểm:0
lá cờ in

Tôi đã sửa nó bằng cách thêm chữ viết tắt "Re:" trước chuỗi Chủ đề. Có vẻ như GMail tạo lịch sử hội thoại mới nếu Chủ đề được thay đổi.

ID tin nhắn không phải là vấn đề. Ngoài ra tôi đã không sử dụng Sàng kì nghỉ plugin để trả lời. Thay thế sàng_extprograms plugin và chuyển nó sang shell script sau đó Xoăn đăng lên máy chủ NodeJS của tôi.

Điểm:0
lá cờ uz

Tại sao bạn không sử dụng trả lời tùy chỉnh postfix? Tôi không chắc liệu ID tin nhắn có bị thay đổi hay không, nhưng hãy thử xem.

Trên main.cf, cấu hình smtpd_recipient_restrictions

 hàm băm check_recipient_access:/path/custom_replies

Sau đó vào /path/custom_replies

[email protected] TỪ CHỐI Tin nhắn tùy chỉnh

Và làm một bản đồ cho tập tin đó

Trân trọng

Đă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.