อีเมลของ sendmail ถูกเก็บไว้ที่ไหน?


10

ฉันกำลังพยายามสร้างสคริปต์ตอบรับอัตโนมัติสำหรับ sendmail (ไม่ฉันยังไม่ต้องการใช้สคริปต์ที่สร้างไว้ล่วงหน้า) แต่ฉันไม่สามารถค้นหาตำแหน่งของอีเมลที่ได้รับบนเซิร์ฟเวอร์ของฉัน ฉันต้องระบุว่าการกำหนดค่าของฉันไม่ใช่ค่าเริ่มต้น

ฉันดู/rootแล้วไม่มีโฟลเดอร์เมลอยู่ที่นั่น (ฉันไม่มีผู้ใช้อื่นนอกจากรูท) ฉันได้ดู/var/mail/rootแล้วมีบันทึกบางอย่างที่ส่งถึงฉันทางไปรษณีย์ แต่ไม่ใช่จดหมายภายนอกที่ฉันได้รับจากผู้ใช้

ฉันตรวจสอบ/var/log/maillogแล้ว แต่ไม่มีข้อผิดพลาด

ฉันออกจากความคิดที่จะมอง มีใครช่วยฉันบ้าง

คำตอบ:


6

sendmail (mail transport agent - MTA) จัดเก็บเมลในที่ที่ถูกตั้งค่าเพื่อเก็บเมล แต่ MTA เก็บเฉพาะจดหมายที่กำลังอยู่ในคิว - การส่งจดหมายไปยังสถานที่ที่ผู้ใช้สามารถเข้าถึงได้จะถูกจัดการโดยตัวแทนส่งจดหมาย (MDA) ในขณะที่ sendmail (และ MTA อื่น ๆ ) สามารถทำหน้าที่เป็น MDA ได้ แต่มันก็ผิดปกติมากสำหรับกรณีนี้

ไม่ว่าการพยายามเข้าถึงไฟล์เมลนั้นเป็นวิธีที่ไม่ถูกต้องในการใช้ระบบตอบรับอัตโนมัติ

ควรทำเช่นนี้เป็นตัวกรองใน MTA (เช่น milter) หรือใน MDA ปลาตัวผู้ APIถูกออกแบบมาเฉพาะสำหรับการนี้ - และมีอยู่แล้วอาจจะเป็นเครื่องมือที่มีอยู่ซึ่งจะตอบสนองความต้องการของคุณด้วยการปรับเปลี่ยนใด ๆ

ถ้า MDA ปัจจุบันของคุณเป็น procmail คุณจะโชคดี - นี่ให้ความยืดหยุ่นอย่างมาก (แน่นอนว่าเป็นภาษาการเขียนโปรแกรมด้วยตัวเอง) เพื่อจัดการกับข้อความอีเมล อีกครั้งมีรหัสจำนวนมากบนอินเทอร์เน็ตซึ่งอาจตอบสนองความต้องการของคุณ (AFAIK ไม่มีที่เก็บส่วนกลางสำหรับสูตร procmail - แต่ลองใช้ google)

แม้แต่กลไกการส่งต่อขั้นพื้นฐานสามารถใช้ในการดำเนินการนี้ - แต่ฉันขอแนะนำให้ทำเช่นนี้ - การเพิ่มเส้นทาง procmail คุณสามารถแยกข้อความเพื่อให้การส่งไม่ขึ้นอยู่กับ / ดำเนินการโดยสคริปต์ของคุณ


ฉันติดตั้ง procmail แล้ว (procmail-3.22-17.1.el5.centos.x86_64) แต่ฉันไม่แน่ใจว่ามันถูกใช้ ฉันได้อ่านเกี่ยวกับสคริปต์ตอบกลับอัตโนมัติที่ใช้ procmail ซึ่งอาจเป็นประโยชน์สำหรับฉัน ฉันสามารถดูว่า procmail ใช้งานอยู่หรือไม่
Eduard Luca

1
คุณสามารถโพสต์เนื้อหาของsendmail.cfไฟล์ของคุณรอบบรรทัดที่เริ่มต้นMlocalซึ่งจะบอกเราว่า MDA ใช้งานอะไร
MadHatter

ใช่มันเป็น procmail Yaay! P=/usr/bin/procmailคือรหัส ขอบคุณ :)
Eduard Luca

แต่ฉันไม่มีprocmailrcไฟล์ ทำให้ฉันสงสัยว่า sendmail + procmail ของฉันถูกใช้งานจริงหรือไม่
Eduard Luca

หากมีการกำหนดค่าใน sendmail และอีเมลของคุณได้รับการจัดส่งแล้วโดยใช้ procmail (ด้วยการรวบรวมในค่าเริ่มต้น) ดู man page สำหรับ procmail - โดยปกติจะเป็น chacks สำหรับ / etc / procmailrc และ ~ / .procmailrc และหากไม่พบก็จะส่งอีเมลตามการกำหนดค่าในเวลารวบรวม
symcbean

6

หากคุณมีการกำหนดค่าอื่นนอกเหนือจากไดเรกทอรีเริ่มต้นคุณควรดูที่ /etc/mail/sendmail.cf ของคุณเพื่อดูเส้นทางที่ตั้งค่าไว้

สิ่งนี้ไม่เพียง แต่จะแตกต่างกันไปตามการกระจายของระบบปฏิบัติการ แต่ยังเปลี่ยนไดเรกทอรีเริ่มต้นระหว่าง sendmail รุ่นต่าง ๆ ด้วย ในระยะสั้นเพียงบอกให้เราทราบถึงค่าเริ่มต้นเราจำเป็นต้องรู้เวอร์ชันของระบบปฏิบัติการและเวอร์ชันของ sendmail ค่าเริ่มต้นคือ / var / spool / mail / $ USERNAME สำหรับการปล่อยจดหมายจากนั้นหากผู้ใช้อ่านจดหมายด้วยแอปพลิเคชันอื่นโดยปกติจะถูกย้ายไปที่ $ HOME / mbox

นี่คือรายการของไดเรกทอรีจดหมายทั่วไป:

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

ขอบคุณ แต่ภายใต้ชื่อตัวแปรใดที่ฉันควรค้นหาในไฟล์กำหนดค่า ฉันอ่านบางอย่างแล้ว$MAIL = แต่หาไม่เจอในไฟล์ปรับแต่ง ฉันได้ตรวจสอบ / var / spool / mail / root แล้วมีอีเมลอยู่ในนั้น แต่ไม่ใช่อีเมลที่ถูกต้อง (และฉันแน่ใจว่าพวกเขายังไม่ได้อ่านเนื่องจากฉันส่งอีเมลและตรวจสอบไฟล์อย่างรวดเร็ว - ไม่ได้อยู่ที่นั่น)
Eduard Luca

3

มันขึ้นอยู่กับวิธีการที่จะกำหนดค่า แต่สถานที่ที่เป็นปกติ/var/spool/mailหรือ /var/maildistros หากมันไม่ได้อยู่ในสถานที่เหล่านั้นโปรดแจ้งให้เราทราบและเราจะเริ่มขุด !


มีบางเมลใน/var/spool/mail/rootแต่มีเฉพาะเมลโลคัล (ส่งจาก root ถึง root)
Eduard Luca

มีอะไรอีก/var/spool/mailบ้าง?
MadHatter

ไฟล์ชื่อrpcซึ่งว่างเปล่าโดยสิ้นเชิง
Eduard Luca
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.