Tôi có một máy chủ email postfix và có một vấn đề tôi muốn gỡ lỗi. Làm cách nào tôi có thể định cấu hình để gửi bản sao của mỗi email tới email của tôi (ngoài việc gửi email tới người nhận dự định của nó).postfix: gửi một bản sao của mỗi email đến một địa chỉ email nhất định
Trả lời
Gần đây tôi đã làm việc này, vì vậy mặc dù tôi muốn chia sẻ:
Gửi tất cả thư đi vào các thư mục Sent với postfix và cyrus imap.
Tóm tắt
Make postfix gửi bcc bản sao của tất cả các email gửi đi đến một đặc biệt "gửi" tài khoản mail. Sử dụng sàng trên tài khoản đặc biệt này để chuyển hướng tất cả các email vào thư mục Đã gửi được liên kết với tài khoản.
Tạo tài khoản người dùng email để gửi
Cách dễ nhất để làm điều này là để tạo ra một tài khoản unix mới cho gửi, thiết vỏ để/bin/false để ngăn chặn bất cứ ai từ việc có thể để đăng nhập trong:
host$ sudo useradd sent host$ sudo chsh -s /bin/false sent
Thiết lập imap cho người sử dụng gửi
sử dụng cyradm chúng ta tạo ra một ne w hòm thư (tức là người dùng) và cung cấp cho người dùng thêm quyền truy cập vào tất cả các imap của chúng tôi "Sent" thư mục:
host$ $ cyradm -user cyrus localhost Password: <enter you cyrus user admin password here> localhost> createmailbox user.sent localhost> setaclmailbox user.%.Sent sent append Setting ACL on user.userx.Sent...OK. Setting ACL on user.usery.Sent...OK. . . . Setting ACL on user.userz.Sent...OK. localhost> exit
Tạo một kịch bản sàng cho tài khoản gửi
Kịch bản này sẽ chuyển hướng tất cả các email gửi đến vào tài khoản đã gửi, đến thư mục được gửi trong Hộp thư đến của người gửi.
kịch bản của tôi được gọi sent.sieve và trông giống như sau:
# Sieve script for sent. If outgoing email is bcc'ed to this account, # this sieve script will redirect it to the sender's Sent folder require ["fileinto"]; if address :is :localpart "From" "userx" { fileinto "user.userx.Sent"; } elsif address :is :localpart "From" "usery" { fileinto "user.usery.Sent"; } elsif address :is :localpart "From" "userz" { fileinto "user.userz.Sent"; }
Bạn sẽ cần phải đặt trong một entry cho mỗi người dùng của bạn (userx, usery, userz trong ví dụ trên). Tôi đã không thể tìm cách tốt hơn để thực hiện việc này. Gợi ý được hoan nghênh để [email protected]
Install script sàng như thế này:
host$ sieveshell localhost -user=sent -a=cyrus Password: <enter you cyrus user admin password here> > put sent.sieve > activate sent.sieve > quit
Thiết lập các bản đồ bcc cho postfix
Trong thư mục postfix (/ etc/postfix trên debian) tạo một tệp có tên là bcc_map trông giống như sau:
# copy all locally sent mail to the sent account @yourdomain.com [email protected]
Biên dịch thành mã băm sau tệp sử dụng:
host$ sudo postmap bcc_map
Thêm dòng sau vào mã bưu chính.tập tin cấu hình cf:
sender_bcc_maps = hash:/etc/postfix/bcc_map
Và chắc postfix reload cấu hình của nó:
chủ $ sudo /etc/init.d/postfix reload
thử nghiệm và Debug
Gửi một email và kiểm tra xem nó có được sao chép vào thư mục Đã gửi của bạn hay không.
Trong trường hợp có sự cố, bạn nên kiểm tra nhật ký cyrus và postfix (tất cả đã đăng nhập vào
/var/log/syslog
trên máy chủ debian của tôi). Quyền sở hữu và không chính xác quyền truy cập thường sẽ dẫn đến một số đầu mối được gửi tới các nhật ký .
Chỉ cần thêm [email protected]
vào /etc/postfix/main.cf và khởi động lại máy chủ postfix. Tôi đã thêm dòng này ở phía dưới.
Nó thực sự có vẻ đang hoạt động. Thông tin thêm về always_bcc here
Xin đừng quên sao lưu tệp này trước.
- 1. Gửi email sao cho "từ" là tên hoặc văn bản thay vì địa chỉ email thực
- 2. Cách gửi email đến nhiều địa chỉ bằng System.Net.Mail
- 3. Địa chỉ email người gửi động Devise
- 4. địa chỉ email noreply.
- 5. Gửi email tới nhiều địa chỉ Android
- 6. làm thế nào để thay đổi địa chỉ email mặc định cho postfix?
- 7. Gửi email đến nhiều địa chỉ email được phân tách bằng dấu phẩy
- 8. truy cập địa chỉ email mặc định
- 9. Phím Gitosis và ssh - địa chỉ email có liên quan đến địa chỉ email git không?
- 10. Postfix cách đếm tất cả các email gửi đi?
- 11. Định tuyến email gửi đến Mandrill
- 12. Thẩm định một địa chỉ email tồn tại trong C#
- 13. Jira gửi email từ địa chỉ người dùng
- 14. Cách chỉ định 'git send-email' để gửi thư trên một bản vá cụ thể?
- 15. Email GitLab không gửi?
- 16. Gửi email từ một hình thức (chỉ HTML, javascript)
- 17. Gửi email đến tài khoản yahoo
- 18. Rails một email gửi đi?
- 19. Gửi tới nhiều địa chỉ email nhưng chỉ hiển thị một C#
- 20. Cố gắng tránh gửi email khi địa chỉ email kết thúc bằng ".old"
- 21. Tìm kiếm IMAP bằng Python từ hoặc đến địa chỉ email được chỉ định
- 22. Gửi một bảng trong email
- 23. Có thể gửi email đến địa chỉ chứa ký tự unicode latin bằng cfmail không?
- 24. Xác định xem địa chỉ email có 'công khai'
- 25. Phạm vi để nhận địa chỉ email một mình?
- 26. Tại sao Logback SMTPAppender chỉ gửi 1 email?
- 27. Làm thế nào để gửi một email từ Jenkins chỉ trong một bản phát hành?
- 28. Dẫn đầu dấu gạch dưới trong một địa chỉ email?
- 29. Không thể gửi email đến nhiều địa chỉ/người nhận bằng C#
- 30. Lync API: Làm cách nào để gửi tin nhắn nhanh đến địa chỉ liên hệ bằng địa chỉ email?
http://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-it có nhiều câu trả lời hay hơn vì nó sử dụng các tính năng được cung cấp bởi postfix. –