ฉันจะหาสปูลเมลในพื้นที่ของฉันได้อย่างไร


18

ฉันเป็นนักศึกษาระดับบัณฑิตศึกษาและเป็นสามเณร Linux คำถามนี้เป็นประเภทของสปินออกจากคำถามก่อนหน้านี้ของฉัน สถาบันของฉันมีคลัสเตอร์ Ubuntu Linux ฉันเป็นแค่ผู้ใช้ ฉันไม่มีสิทธิ์ดูแลระบบและแน่นอนว่าฉันไม่มีความเชี่ยวชาญในการดูแลระบบ!

คำถามของฉันคือฉันจะหาสปูลจดหมายในพื้นที่ได้อย่างไร เท่าที่ฉันรู้ฉันไม่ได้ใช้ตัวแทนการถ่ายโอนจดหมาย คำตอบสำหรับคำถามก่อนหน้าของฉันบอกว่าฉันค้นหาไฟล์/var/spool/mail/$USERแต่น่าเสียดายที่ฉันไม่เห็นไฟล์ที่สอดคล้องกับชื่อผู้ใช้ของฉัน ในการ/var/spool/mail/ใช้lsฉันเห็นสองไฟล์เท่านั้น: nobodyและwww-dataซึ่งเป็นทั้งไฟล์เสริม

คุณมีความคิดอื่น ๆ เกี่ยวกับที่ฉันสามารถมองหาสปูลอีเมลของฉัน (ซึ่งอาจเป็นในพื้นที่เนื่องจากฉันไม่ได้กำหนดเอเจนต์การถ่ายโอนเมลไว้เท่าที่ฉันรู้)


3
ลองecho $MAIL
squareborg

1
คุณส่งอีเมลถึงตัวเองหรือไม่? ไฟล์กล่องจดหมายมักจะสร้างบนพื้นฐาน "ตามต้องการ"
AnFi

@Shutupsquare นี่น่าสนใจ เมื่อฉันพิมพ์echo $MAILมันจะส่งคืนชื่อผู้ใช้ของฉันอยู่/var/mail/myusernameที่ไหน myusernameแต่เมื่อฉันไป/var/mail/ที่ไฟล์myusernameไม่มีอยู่
แอนดรู

@ AndrzejA.Filip นอกเหนือจากการใช้atเพื่อส่งข้อความท้องถิ่นเมื่อกระบวนการตามกำหนดเวลาสร้างผลลัพธ์ฉันจะลองส่งข้อความถึงตัวเองได้อย่างไร ทั้งหมดนี้เป็นเรื่องใหม่สำหรับฉัน
แอนดรูว์

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อส่งอีเมล์ทดสอบให้กับตัวเอง: (echo Subject: test; echo) | /usr/sbin/sendmail -i YOUR_LOGIN. ต้นขั้ว Sendmail นั้นให้บริการโดยเซิร์ฟเวอร์ MTA อื่น ๆ เช่นกัน (เช่น postfix, exim)
AnFi

คำตอบ:


20

โดยทั่วไปแล้วมักจะมี spools

/var/spool/mail/$USER

$USERชื่อผู้ใช้ของคุณอยู่ที่ไหน ตัวอย่างเช่นในระบบ Fedora Linux ของฉัน:

$ 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

แต่ตัวส่งเมลไม่จำเป็นต้องอยู่ภายในเครื่อง หากคุณไม่มีไฟล์นี้แสดงว่าอีเมลของคุณได้รับการดูแลบนเซิร์ฟเวอร์อื่น คุณสามารถโต้ตอบกับเซิร์ฟเวอร์นี้โดยใช้โปรโตคอลเช่นIMAPหรือPOP3

อยู่ในระบบนี้ที่เก็บสปูลจดหมายของคุณอยู่

mail ($HOME/mail)ในสภาพแวดล้อมบางระวิงจดหมายสามารถใช้ร่วมกันออกมาเป็นส่วนหนึ่งของไดเรกทอรีบ้านของผู้ใช้บ่อยครั้งในไดเรกทอรีที่เรียกว่า ครั้งอื่น ๆ /mail/users/$USERก็สามารถนำมาใช้ร่วมกันออกเป็นส่วนแบ่งของตัวเองภายใต้สิ่งที่ต้องการ

มันขึ้นอยู่กับว่า sysadmins ภายในสภาพแวดล้อมที่กำหนดเลือกทำอย่างไร


2
หมายเหตุ: หากมี a /var/mailเช่นเดียวกับในคำถามอาจเป็น symlink ไป/var/spool/mailเช่นเดียวกับในคำตอบนี้หรือวิธีอื่น ๆ อย่างน้อยนั่นก็เป็นกรณีของแล็ปท็อปอูบุนตูในบ้านของฉันจาก System76 การลบไฟล์ / โฟลเดอร์ออกจากไดเรกทอรีใดไดเรกทอรีหนึ่งอาจเป็นการลบไฟล์ที่เกี่ยวข้องออกจากไดเรกทอรีอื่น
trysis

7

หากเครื่องของคุณไม่ได้รับการกำหนดค่าผิดพลาดคำสั่งmail(หรือโปรแกรมอีเมลอื่น ๆ เช่นmutt) จะเข้าถึงกล่องจดหมายท้องถิ่นของคุณ โดยปกติกล่องจดหมายในท้องถิ่นเป็นอย่างใดอย่างหนึ่งหรือ/var/spool/mail/$USER /var/mail/$USERหากกล่องจดหมายอยู่ในตำแหน่งที่ไม่ได้มาตรฐานผู้ดูแลระบบอาจกำหนดค่าระบบเพื่อตั้งค่าMAILตัวแปรสภาพแวดล้อมให้เป็นตำแหน่งของกล่องจดหมายของคุณ

หากคุณไม่เคยได้รับเมลบนเครื่องนั้นไฟล์นั้นจะไม่ปรากฏ ส่งจดหมายด้วยตัวคุณเองแล้วไฟล์จะถูกสร้างขึ้น

หากมีการส่งเมลใด ๆ บนเครื่องนี้เอเจนต์การโอนเมลจะทำงานอยู่ คุณจะไม่โต้ตอบโดยตรงกับ MTA: เป็นสิ่งที่ผู้ดูแลระบบตั้งค่า

การมีอยู่ของไฟล์/var/spool/mail/nobodyและ/var/spool/mail/www-dataแสดงให้เห็นว่ามี (หรือเคย) MTA ทำงานและส่งจดหมายในท้องถิ่น พวกเขาอาจมีรายงานจากงาน cron

คุณจะสามารถรับจดหมายจากเครื่องอื่น ๆ หากเครื่องนั้นได้รับการกำหนดค่าให้รับจดหมาย ในสภาพแวดล้อมที่มีคอมพิวเตอร์หลายเครื่องเป็นเรื่องปกติที่จะกำหนดค่าเครื่องเดียวเพื่อรับจดหมายทั้งหมด นี่คือการแสดงผ่านDNS หากมีเรคคอร์ด MXสำหรับโฮสต์จะเป็นการระบุว่าโฮสต์ใดที่จะได้รับเมลสำหรับโฮสต์นั้น ท่านสามารถเข้าดูระเบียน MX ด้วยหรือhost -t MX $HOSTNAMEdig MX $HOSTNAME

แม้ว่าคุณจะได้รับจดหมายในพื้นที่เป็นไปได้ว่ามันจะถูกเปลี่ยนเส้นทางไปยังเครื่องอื่น ตรวจสอบว่าคุณมีไฟล์ที่เรียกว่า.forwardในโฮมไดเร็กตอรี่ของคุณหรือไม่: ประกอบด้วยที่อยู่อีเมลเพื่อเปลี่ยนเส้นทางเมลของคุณหรือบางคำสั่งอื่นบอก MTA ว่าจะทำอย่างไรเมื่อคุณได้รับจดหมาย คุณอาจมี.procmailrcไฟล์หาก MTA ได้รับการกำหนดค่าให้ใช้procmailเพื่อส่งจดหมายซึ่งเป็นเรื่องปกติ


6

คุณควรหามันใน/var/spool/mail/(ตำแหน่งดั้งเดิม) หรือ/var/mail(ตำแหน่งที่แนะนำใหม่) โปรดทราบว่าอาจเป็นลิงก์สัญลักษณ์ไปยังอีกลิงก์หนึ่งดังนั้นจึงเป็นการดีที่สุดที่จะไปยังลิงก์ที่เป็นไดเรกทอรีจริง (ไม่ใช่แค่ลิงก์) ที่นี่คุณควรค้นหาไฟล์ที่เรียกว่าชื่อผู้ใช้ของคุณนั่นคือกล่องจดหมายของคุณ ควรเป็นของคุณดังนั้นคุณควรทำสำเนาได้ง่าย


แต่น่าเสียดายที่/var/spool/mail/และ/var/mail/แต่ละคนมีเพียงสองไฟล์: nobodyและwww-dataทั้งที่มีชื่อผู้ใช้ของฉัน ขอบคุณที่สละเวลา.
แอนดรู

@Andrew - การไม่มีชื่อผู้ใช้ของคุณในไดเรกทอรีเหล่านี้เพียงแค่บอกคุณว่ายังไม่มีจดหมายใด ๆ ที่ส่งภายในเครื่องบนระบบนั้น
slm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.