เมื่อฉันลองคำสั่งในเทอร์มินัลอีเมลจะถูกส่ง ฉันตรวจสอบแล้วว่าไม่ได้มีการใช้งาน SMTP ในเครื่องดังนั้นกลไกที่ Apple ใช้อยู่เบื้องหลังคืออะไร
echo "Hello" | mail -s "Test" foo@bar.com
เมื่อฉันลองคำสั่งในเทอร์มินัลอีเมลจะถูกส่ง ฉันตรวจสอบแล้วว่าไม่ได้มีการใช้งาน SMTP ในเครื่องดังนั้นกลไกที่ Apple ใช้อยู่เบื้องหลังคืออะไร
echo "Hello" | mail -s "Test" foo@bar.com
คำตอบ:
mail
บน OS X ดูเหมือนว่าจะวางไข่ Postfix นานพอที่จะจัดการกับเมลจากนั้นก็ฉีกทิ้งในเวลาอันสั้น
หากต้องการดูสิ่งนี้ให้ลองใช้telnet localhost 25
ก่อนคำสั่ง mail จากนั้นทันทีหลังจากนั้นจากนั้นรอ 5 นาทีแล้วลองอีกครั้ง
ฉันไม่แน่ใจว่าจริง ๆ แล้วนี่เป็นคำตอบที่ถูกต้องสำหรับคำถามเพราะมันไม่ได้อธิบายว่า Postfix จะถูกวางและฉีกขาดได้อย่างไร แต่หวังว่ามันจะช่วยตอบคำถามได้
SMTP daemons หรือเซิร์ฟเวอร์มีไว้เพื่อรับจดหมายไม่ใช่ส่ง ในตัวอย่างของคุณmail
เป็นไคลเอนต์อีเมลอย่างแท้จริงและเชื่อมต่อกับเซิร์ฟเวอร์ใดก็ตามที่กำหนดโดยระเบียน DNS MX ที่เหมาะสมbar.com
และไม่มีข้อกำหนดสำหรับเซิร์ฟเวอร์ท้องถิ่นที่จะทำงานเพื่อให้สามารถดำเนินการได้
อย่างไรก็ตามขึ้นอยู่กับการตั้งค่าอีเมลของคุณคุณอาจต้องลงชื่อเข้าใช้เซิร์ฟเวอร์อีเมลขาออกเพื่อรับรองความถูกต้องหรือหากไม่มีสิ่งอื่นใดที่จะช่วยให้ผู้ส่งและที่อยู่ผู้ส่งกลับไปที่อื่น ๆ ได้ในตอนนี้คุณสามารถทำได้ทั้งหมด พารามิเตอร์บนเทอร์มินัล แต่ตราบใดที่คุณตั้งค่าแอพ Mail ของคุณการกำหนดค่านี้จะถูกเก็บไว้แล้วและเพียงแค่ยิงระบบย่อยเมลชั่วคราวคำสั่งเทอร์มินัลสามารถคว้าข้อมูลนั้นได้และตอนนี้มีเซิร์ฟเวอร์ smtp อีเมลอย่างน้อยหนึ่งรายการ เลือกที่จะส่งข้อความขาออก จากนั้นจะยุติกระบวนการเมื่อเสร็จสมบูรณ์
คุณสามารถทดสอบสิ่งนี้ได้ทั้งหมดที่บรรทัดคำสั่งและส่งอีเมลโดยไม่ต้องใช้ไคลเอ็นต์จดหมาย ฉันไม่ได้ใช้ Mac ดังนั้นคำสั่งเหล่านี้อาจต้องมีการแก้ไขโดยคนที่เป็น แต่คุณสามารถทำได้:
nslookup
set type=mx
bar.com
exit
telnet MXServer 25 (where MXServer is one of the results returned above and 25 is the port number for SMTP servers)
อ่านสิ่งนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งอีเมลผ่าน telnet - เป็นเครื่องมือดีบั๊ก
ฉันคิดว่าmail
ใช้ sendmail ในเครื่องเพื่อส่งจดหมายเสมอ ที่OSX sendmail คือ postfix และมันถูกใช้อย่างแน่นอน
Received: by [Your-Mac] (Postfix, from userid ...
คุณสามารถตรวจสอบส่วนหัวจดหมาย
อย่างไรก็ตามมันไม่ควรใช้mail
(หรือดีกว่าpostfix
) เช่นนี้ แนวทางปฏิบัติที่ดีที่สุดคือการใช้Smart Hostสำหรับ Postfix ในพื้นที่ของคุณเพื่อหลีกเลี่ยงข้อ จำกัด ไฟร์วอลล์ที่ใช้บ่อย
คุณสามารถหาวิธีแก้ไขได้ที่การตั้งค่าโฮสต์ SMTP สมาร์ทสำหรับ Postfix ใน Snow Leopardซึ่งใช้ได้กับฉัน (เช่น Lion, Mountain Lion)