Email sendmail được lưu trữ ở đâu?


10

Tôi đang cố gắng xây dựng tập lệnh trả lời tự động cho sendmail (không, tôi chưa muốn sử dụng tập lệnh dựng sẵn), nhưng dường như tôi không thể tìm thấy vị trí nhận email trên máy chủ của mình. Tôi phải xác định rằng cấu hình của tôi không phải là cấu hình mặc định.

Tôi đã nhìn vào /root, không có thư mục thư ở đó. (Tôi không có người dùng nào khác ngoài root). Tôi đã xem /var/mail/root, chỉ có một số nhật ký được gửi cho tôi qua thư, nhưng không phải thư bên ngoài mà tôi nhận được từ người dùng.

Tôi đã kiểm tra /var/log/maillog, nhưng không có lỗi.

Tôi không biết nên tìm ở đâu. Có ai giúp tôi không?

Câu trả lời:


6

sendmail (một đại lý vận chuyển thư - MTA) lưu trữ thư ở nơi được cấu hình để lưu trữ thư. Nhưng một MTA chỉ lưu trữ thư mà hiện đang xếp hàng - việc gửi thư đến địa điểm mà người dùng có thể truy cập được xử lý bởi đại lý chuyển phát thư (MDA). Mặc dù sendmail (và các MTA khác) có thể hoạt động như một MDA, nhưng điều đó rất bất thường đối với trường hợp đó.

Bất kể, cố gắng truy cập các tệp thư không phải là cách phù hợp để thực hiện trả lời tự động.

Điều này nên được thực hiện như một bộ lọc trong MTA (tức là một máy vắt sữa) hoặc trong MDA. Các API milter được thiết kế đặc biệt cho việc này - và có thể đã được các công cụ có sẵn mà sẽ đáp ứng yêu cầu của bạn mà không sửa đổi.

Nếu MDA hiện tại của bạn là procmail thì bạn sẽ gặp may - điều này mang lại sự linh hoạt rất lớn (thực sự là ngôn ngữ lập trình theo đúng nghĩa của nó) để xử lý thư mail. Một lần nữa, có rất nhiều mã trên internet có thể đáp ứng nhu cầu của bạn (AFAIK không có kho lưu trữ trung tâm cho các công thức nấu ăn procmail - nhưng hãy thử google).

Ngay cả cơ chế .forward cơ bản cũng có thể được sử dụng để thực hiện điều này - nhưng tôi khuyên bạn nên chống lại điều này - đi xuống tuyến đường procmail mà bạn có thể rẽ nhánh tin nhắn để việc phân phối không phụ thuộc vào / được thực thi bởi tập lệnh của bạn.


Tôi đã cài đặt procmail (procmail-3.22-17.1.el5.centos.x86_64), nhưng tôi không chắc nó được sử dụng. Tôi cũng đã đọc về một tập lệnh trả lời tự động sử dụng procmail, có thể hữu ích cho tôi. Tôi có thể xem nếu procmail đang được sử dụng?
Eduard Luca

1
Bạn có thể đăng nội dung của sendmail.cftệp xung quanh dòng bắt đầu không Mlocal, điều này sẽ cho chúng tôi biết MDA đang được sử dụng.
MadHatter

Vâng, đó là procmail. Ơ! P=/usr/bin/procmaillà mã. Cảm ơn bạn :)
Eduard Luca

Nhưng tôi không có procmailrctập tin. Làm cho tôi tự hỏi nếu sendmail + procmail của tôi thực sự được sử dụng.
Eduard Luca

Nếu nó được cấu hình trong sendmail và thư của bạn sẽ được gửi thì sử dụng procmail (với phần được biên dịch theo mặc định). Xem trang hướng dẫn cho procmail - thường thì nó bị lừa cho / etc / procmailrc và ~ / .procmailrc và nếu không tìm thấy thì nó sẽ gửi thư theo cấu hình tại thời gian biên dịch.
symcbean

6

Nếu bạn có các thư mục mặc định được định cấu hình, bạn nên xem /etc/mail/sendmail.cf để xem đường dẫn được đặt thành gì.

Điều này không chỉ thay đổi phân phối hệ điều hành betweeen, mà ngay cả các thư mục mặc định giữa các phiên bản sendmail khác nhau cũng thay đổi. Nói tóm lại, chỉ cần chúng tôi cho bạn biết các mặc định, chúng tôi cần biết phiên bản HĐH VÀ phiên bản sendmail. Mặc định là / var / spool / mail / $ USERNAME cho việc thả thư, sau đó nếu người dùng đọc thư bằng ứng dụng khác, nó thường được chuyển sang $ HOME / mbox.

Dưới đây là danh sách các thư mục thư phổ biến:

  • / var / mail / $ USERNAME
  • / var / spool / mail / $ USERNAME
  • $ HOME / mbox
  • $ HOME / thư
  • $ HOME / Maildir

Cảm ơn, nhưng dưới tên biến nào tôi nên tìm nó trong tập tin cấu hình? Tôi đã đọc một cái gì đó về $MAIL = nhưng tôi không thể tìm thấy nó trong tập tin cấu hình. Tôi đã kiểm tra / var / spool / mail / root, có một số thư trong đó, nhưng không phải là thư đúng (và tôi chắc chắn rằng chúng chưa được đọc, vì tôi đã gửi email và nhanh chóng kiểm tra tệp - không có ở đó).
Eduard Luca

3

Nó phụ thuộc vào cách cấu hình của nó, nhưng địa điểm thông thường là /var/spool/mailhoặc một số bản phát hành /var/mail. Nếu nó không ở những nơi đó, hãy cho chúng tôi biết, và chúng tôi sẽ bắt đầu đào !


Có một số thư trong /var/spool/mail/rootnhưng chỉ các thư cục bộ (được gửi từ gốc đến gốc).
Eduard Luca

Có gì khác trong /var/spool/mail?
MadHatter

Một tập tin có tên rpchoàn toàn trống rỗng.
Eduard Luca
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.