Làm thế nào tôi có thể tìm thấy thư thư địa phương của tôi?


18

Tôi là một sinh viên tốt nghiệp và một người mới làm quen với Linux. Câu hỏi này là một loại spin-off của câu hỏi trước đây của tôi . Tổ chức của tôi có một cụm Ubuntu Linux. Tôi chỉ là một người dùng; Tôi không có quyền sysadmin và tôi chắc chắn không có chuyên môn để trở thành một sysadmin!

Câu hỏi của tôi là, làm thế nào để tôi tìm thấy thư địa phương của tôi? Theo tôi biết, tôi không sử dụng một đại lý chuyển thư. Các câu trả lời cho câu hỏi trước đây của tôi gợi ý rằng tôi tìm kiếm một tệp /var/spool/mail/$USER, nhưng thật không may, tôi không thấy một tệp tương ứng với tên người dùng của mình. Trong /var/spool/mail/, sử dụng lstôi chỉ thấy hai tệp: nobodywww-data, cả hai đều là tệp không có phần mở rộng.

Bạn có ý tưởng nào khác về nơi tôi có thể tìm bộ đệm thư của mình không (có lẽ là cục bộ, vì tôi không có tác nhân chuyển thư được định cấu hình, theo như tôi biết)?


3
thửecho $MAIL
0x7c0

1
Bạn đã gửi email cho mình chưa? Các tập tin hộp thư thường được tạo trên cơ sở "khi cần thiết".
AnFi

@Shutupsapes Điều này thật thú vị. Khi tôi gõ echo $MAIL, nó trả về /var/mail/myusername, myusernametên người dùng của tôi ở đâu. Nhưng khi tôi điều hướng đến /var/mail/, tập tin myusernamekhông tồn tại ở đó.
Andrew

@ AndrzejA.Filip Khác với việc sử dụng atđể gửi tin nhắn cục bộ khi một quy trình được lên lịch tạo đầu ra, làm cách nào tôi có thể thử gửi tin nhắn cho chính mình? Đây là tất cả quá mới đối với tôi.
Andrew

Bạn có thể sử dụng lệnh sau để gửi email kiểm tra cho chính mình : (echo Subject: test; echo) | /usr/sbin/sendmail -i YOUR_LOGIN. Sơ khai Sendmail cũng được cung cấp bởi các máy chủ MTA khác (ví dụ postfix, exim).
AnFi

Câu trả lời:


20

Ống cuốn thư thường ở dưới đây:

/var/spool/mail/$USER

Trong trường hợp $USERlà tên người dùng của bạn. Ví dụ trên hệ thống Fedora Linux của tôi:

$ ls -l /var/spool/mail/
total 1908
-rw-------. 1 root root 1943163 Jul 13 12:00 root
-rw-rw----. 1 rpc  mail       0 Dec 18  2010 rpc
-rw-rw----. 1 saml mail     689 Jul 12 19:38 saml

Ống cuốn thư tuy nhiên không nhất thiết là địa phương. Nếu bạn không có tệp này thì thư của bạn sẽ được duy trì trên một máy chủ khác. Bạn có thể tương tác với máy chủ này bằng các giao thức như IMAP hoặc POP3 .

Đó là trên hệ thống này, nơi bộ đệm thư của bạn đang được duy trì.

Trong một số môi trường, bộ đệm thư có thể được chia sẻ như một phần của thư mục chính của người dùng, thường là trong thư mục được gọi mail ($HOME/mail). Những lần khác, nó có thể được chia sẻ dưới dạng chia sẻ của chính nó dưới một cái gì đó như /mail/users/$USER.

Nó thực sự phụ thuộc vào cách các hệ thống trong một môi trường nhất định chọn làm như vậy.


2
Lưu ý: nếu có một /var/mail, như trong câu hỏi, nó có thể là một liên kết tượng trưng /var/spool/mail, như trong câu trả lời này, hoặc ngược lại. Ít nhất, đó là trường hợp trên máy tính xách tay Ubuntu của tôi từ System76. Xóa tệp / thư mục khỏi một trong hai thư mục có thể sẽ xóa tệp tương ứng khỏi thư mục khác.
phân tích

7

Trừ khi máy của bạn bị định cấu hình sai, lệnh mail(hoặc các chương trình thư khác như mutt) sẽ truy cập hộp thư cục bộ của bạn. Thông thường hộp thư cục bộ là /var/spool/mail/$USERhoặc /var/mail/$USER. Nếu hộp thư ở vị trí không chuẩn, quản trị viên hệ thống có thể đã định cấu hình hệ thống để đặt MAILbiến môi trường thành vị trí hộp thư của bạn.

Nếu bạn chưa bao giờ nhận thư trên máy đó, thì tệp sẽ không tồn tại. Gửi cho mình một thư, và các tập tin sẽ được tạo ra.

Nếu bất kỳ thư nào được gửi trên máy này, thì một đại lý chuyển thư đang chạy. Bạn sẽ không bao giờ tương tác trực tiếp với MTA: đó là thứ mà quản trị viên thiết lập.

Sự tồn tại của các tệp /var/spool/mail/nobody/var/spool/mail/www-datacho thấy rằng có (hoặc là) một MTA đang chạy và gửi thư cục bộ. Chúng có thể chứa các báo cáo từ các công việc định kỳ.

Bạn sẽ chỉ có thể nhận thư từ các máy khác nếu máy đó được định cấu hình để nhận thư. Trong môi trường nhiều máy tính, thông thường cấu hình một máy duy nhất để nhận tất cả thư. Điều này được chỉ định thông qua DNS . Nếu có bản ghi MX cho máy chủ lưu trữ, nó cho biết máy chủ nào sẽ nhận thư dành cho máy chủ đó. Bạn có thể xem bản ghi MX có host -t MX $HOSTNAMEhoặc dig MX $HOSTNAME.

Ngay cả khi bạn đang nhận thư cục bộ, có thể nó được chuyển hướng đến một máy khác. Kiểm tra xem bạn có một tệp được gọi .forwardtrong thư mục chính của bạn không: nó chứa địa chỉ email để chuyển hướng thư của bạn đến hoặc một số chỉ thị khác cho MTA biết phải làm gì khi bạn nhận được thư. Bạn cũng có thể có một .procmailrctệp nếu MTA được cấu hình để sử dụng procmail để gửi thư, điều này khá phổ biến.


6

Bạn nên tìm thấy nó ở một trong hai /var/spool/mail/(vị trí truyền thống) hoặc /var/mail(vị trí được đề xuất mới). Lưu ý rằng một cái có thể là một liên kết tượng trưng cho cái kia, vì vậy tốt nhất là đi đến một liên kết thực sự (và không chỉ là một liên kết). Ở đây bạn nên tìm một tệp có tên giống như tên người dùng của bạn, đó là hộp thư của bạn. Nó nên thuộc sở hữu của bạn, vì vậy bạn sẽ dễ dàng có thể tạo một bản sao của nó.


Thật không may, /var/spool/mail//var/mail/mỗi tệp chỉ có hai tệp: nobodywww-data, cả hai đều không phải là tên người dùng của tôi. Cảm ơn vì đã dành thời gian cho tôi.
Andrew

@Andrew - việc thiếu tên người dùng của bạn trong các thư mục này chỉ cho bạn biết rằng chưa có thư nào được gửi cục bộ trên hệ thống cụ thể đó.
slm
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.