ฉันเรียกใช้เซิร์ฟเวอร์ที่ใช้ร่วมกันสำหรับเว็บไซต์ของลูกค้า (อูบุนตู 16.04) ฉันเรียกใช้ exim เพื่ออนุญาตให้เว็บไซต์ส่งอีเมล นอกจากนี้ยังทำหน้าที่เป็นผู้ส่งต่อจดหมายและเซิร์ฟเวอร์ smtp สำหรับซอฟต์แวร์อีเมล cleints ของฉัน (หรือเพียงแค่ gmail) เพื่อให้พวกเขาส่งอีเมลจากผู้ส่งของพวกเขา
ขณะนี้ฉัน จำกัด การส่งอีเมลสำหรับผู้ใช้ระยะไกลเพื่ออนุญาตที่อยู่ "จาก" เฉพาะเมื่อตรงกับชื่อผู้ใช้ smtp ของพวกเขา (เพื่อหยุดไคลเอ็นต์หนึ่งสามารถส่งอีเมลเป็นลูกค้าอื่น) ผู้ใช้ smtp ระยะไกลไม่ใช่ผู้ใช้ระบบพวกเขาเป็นเพียงข้อมูลรับรองที่เก็บไว้ในไฟล์ passwd มันใช้งานได้ดีมาก
อีเมลเดียวที่ส่งโดยผู้ใช้ท้องถิ่นมาจากสคริปต์ PHP แต่ละเว็บไซต์ทำงานในฐานะผู้ใช้ที่แตกต่างกัน เช่น example.com ทำงานเป็นผู้ใช้ "ตัวอย่าง" test.com ทำงานเป็นผู้ใช้ "ทดสอบ" คำถามของฉันคือฉันจะ จำกัด บัญชีผู้ใช้ในท้องถิ่นให้สามารถส่งอีเมลจากโดเมนเดียวได้อย่างไร ดังนั้นผู้ใช้ "ทดสอบ" สามารถส่งจาก anyaddress@test.com แต่ไม่สามารถส่งจาก anyaddress@example.com ได้
โดยอุดมคติแล้วฉันต้องการให้สคริปต์ทดสอบดูในไฟล์เช่นconf/env{USER}/allowed-from-domains
และทดสอบโดเมนของFrom:
ฟิลด์เพื่อให้แน่ใจว่าเป็นไฟล์นั้น
if $sender_address is "example@$qualify_domain"
หมายถึงตัวอย่างเช่นexample@hostname
? PHPno-reply@domain.com
สคริปต์ของฉันตั้งจากที่อยู่เพื่อสิ่งที่ต้องการ กฎนี้จะไม่ตรงกันหรือไม่