VPS ของฉันใช้งาน Ubuntu และฉันต้องการรับอีเมลไปยังโดเมนของฉัน
ฉันจะตั้งค่าเซิร์ฟเวอร์อีเมลเพื่อทำสิ่งนี้ได้อย่างง่ายดายได้อย่างไร
VPS ของฉันใช้งาน Ubuntu และฉันต้องการรับอีเมลไปยังโดเมนของฉัน
ฉันจะตั้งค่าเซิร์ฟเวอร์อีเมลเพื่อทำสิ่งนี้ได้อย่างง่ายดายได้อย่างไร
คำตอบ:
นี่คือวิธีที่ฉันติดตั้งเมลบนเครื่องผลิตของเรา นี่คือเกณฑ์ที่เราต้องการ:
ครั้งแรกฉันต้องการที่อยู่สิ่งที่ดูเหมือนจะเป็นทางออกที่ง่ายที่สุด
sudo tasksel install mail-server
มีปัญหาหลายอย่างที่เกิดขึ้นเมื่อเราลองทำสิ่งนี้: อันดับแรกมันติดตั้ง Dovecot ซึ่งใช้ได้ดีที่สุด แต่เราถือว่า Courier ดีกว่าสำหรับสองความต้องการของเรา อันดับที่สองใช้ประโยชน์ Postfix ซึ่งยอดเยี่ยม แต่เราก็ต้องการ Exim เพราะเป็นเซิร์ฟเวอร์ MTA / SMTP ที่ทรงพลังกว่า ประการที่สามมันติดตั้ง MySQL - ในการกำหนดค่าฉันใช้เราชอบไฟล์แบนสำหรับการกำหนดค่าเพราะมันเป็นจุดแตกหักน้อยกว่า คิดว่าจะเกิดอะไรขึ้นหาก MySQL ขัดข้องด้วยสาเหตุที่ไม่ทราบสาเหตุ มิฉะนั้นแพคเกจที่เหลือจะค่อนข้างตรงไปตรงมาและง่ายต่อการบำรุงรักษาสำหรับบริการอีเมลขนาดเล็ก (คิดว่าโดเมนอีเมลทั้งหมด 1-2 โดเมน)
เราหลงทางเล็กน้อยนอกเส้นทางของการกำหนดค่าปกติ แต่ทำให้การจัดการง่ายขึ้น
จดหมายของเราทั้งหมดถูกเก็บไว้ใน/var/mail/virtual/<domain>/<user>/mail
ดังนั้นสำหรับตัวอย่างในอนาคตผมจะใช้email@example.com
, fwd@example.com
, foo@example.com
ที่จะเป็นตัวแทนที่อยู่อีเมลส่งไปที่example@gmail.com
และที่อยู่ที่ไม่ดีตามลำดับ /var/mail/virtual/example.com/email/mail
ในตัวอย่างข้างต้นก็จะเป็น
ฉันยังเก็บรักษารายการโดเมนทั้งหมดในเซิร์ฟเวอร์ไว้/etc/valiases
แต่จะเพิ่มเติมในภายหลัง
นี่เป็นส่วนที่ง่ายของการตั้งค่า เพียงติดตั้งpostfix
แพ็คเกจ
ติดตั้ง Exim ด้วยapt-get install exim4 exim4-base exim4-config exim4-daemon-heavy
เมื่อติดตั้งแล้วคุณจะต้องแก้ไขการกำหนดค่าเริ่มต้น exim เพื่อแทนที่หรือเพิ่มค่าต่อไปนี้:
domainlist local_domains = @:localhost:dsearch;/etc/valiases:dsearch;/var/mail/virtual
daemon_smtp_ports = smtp : 587 : 465
MAIN_TLS_ENABLE = yes
(บรรทัดเหล่านี้จะปรากฏในส่วนต่าง ๆ ของไฟล์แทนที่แต่ละบรรทัด)
เมื่อสร้างการกำหนดค่า exim ใหม่เสร็จสมบูรณ์ด้วยupdate-exim4.conf
นี่จะเป็นการสรุปการเปลี่ยนแปลงที่จำเป็นสำหรับ Exim
ติดตั้ง Courier กับcourier-base
นี้ควรติดตั้งcourier-authdaemon
, courier-authlib*
, courier-imap*
, courier-pop*
, courieruserinfo
,courier-ssl
จริงๆแล้วมีการกำหนดค่าไม่มากนอกมาตรฐาน คุณเพียงแค่ต้องสร้างฐานข้อมูลผู้ใช้
Exim และ Courier ตรวจสอบสถานที่เพื่อดูว่าการเข้าสู่ระบบหรืออีเมลขาเข้านั้นถูกต้องหรือไม่ ตรวจสอบ Exim ถ้าโดเมนถูกระบุว่าเป็นชื่อโฮสต์ท้องถิ่นหรือถ้าโดเมนที่อยู่ในหรือถ้าโดเมนที่อยู่ใน/var/mail/virtual
/etc/valiases
ในที่สุดฉันก็สร้างเครื่องมือหลายอย่างเพื่อปรับปรุงกระบวนการนี้ - แต่การเพิ่มผู้ใช้ใหม่ไปที่:
mkdir -p /var/mail/virtual/example.com/email
chown -R mail.mail /var/mail/virtual/example.com/
maildirmake /var/mail/virtual/example.com/email/mail
chown -R mail.mail /var/mail/virtual/example.com/
จากนั้นเพิ่มที่อยู่ใน courier userdb - เพื่อให้พวกเขาสามารถเข้าสู่ระบบ
userdb email@example.com set uid=8 gid=8 home=/var/mail/virtual/example.com/email mail=/var/mail/virtual/example.com/email/mail
ตรวจสอบให้แน่ใจว่าได้แทนที่ค่าที่เหมาะสม นอกจากนี้ - uid
และgid
ต้องเป็นรหัสผู้ใช้ / กลุ่มที่เป็นตัวเลขสำหรับผู้ใช้จดหมาย
userdbpw -md5 | userdb email@example.com set systempw
สิ่งนี้จะแจ้งให้คุณใส่รหัสผ่านป้อนรหัสที่คุณต้องการใช้สำหรับบัญชี
makeuserdb
สุดท้ายสร้างไฟล์แฮช / เงาของผู้ใช้ รีสตาร์ท Courier และทดสอบว่าการเปลี่ยนแปลงของคุณทำงานหรือไม่:
authtest email@example.com
ควรผลิตสิ่งที่คล้ายกับ
Authentication succeeded.
Authenticated: email@example.com (uid 8, gid 8)
Home Directory: /var/mail/virtual/example.com/email
Maildir: /var/mail/virtual/example.com/email/mail
Quota: (none)
Encrypted Password: $1$LOLCATS$THISWILLBEAHASH.
Cleartext Password: (none)
Options: (none)
หากคุณเห็น "การรับรองความถูกต้องล้มเหลว: ไม่อนุญาตให้ดำเนินการ" ให้แก้ไข / etc / courier / authdaemonrc และเพิ่ม authuserdb ลงในบรรทัด authmodulelist
หลังจากยืนยันการทดสอบทั้งหมดแล้วให้เริ่มบริการต่าง ๆ ที่เกี่ยวข้อง ( courier-authdaemon
, exim4
) เปิดพอร์ต 143, 25, 586, 495, 110 และตั้งค่าบัญชีในโปรแกรมรับส่งเมลที่คุณชื่นชอบ
สำหรับแต่ละโดเมนคุณควรสร้างไฟล์ใน/etc/valiases
(สร้างหากไม่มีอยู่) อย่างน้อยบรรทัดต่อไปนี้:
*: :fail: No user at this address.
สิ่งนี้บอกว่า: ถ้าจดหมายขาเข้าไม่ตรงกับบัญชีอีเมลใด ๆ ที่ฉันมีบันทึกไว้ - จดหมายนั้นควรจะล้มเหลวและเด้งด้วยข้อความ: "ไม่มีผู้ใช้ที่อยู่นี้" ดังนั้นจดหมายทั้งหมดที่ส่งไปบอกว่าfoo@example.com
จะถูกตีกลับเป็นความล้มเหลว
อย่างไรก็ตามเรามีที่อยู่อีเมลเพียงไม่กี่แห่งที่เราต้องการรักษาไว้ที่อื่น - เช่น example@gmail.com - เพื่อให้เราต้องสร้าง/etc/valiases/example.com
และเนื้อหาของไฟล์ควรเป็นดังนี้:
fwd: example@gmail.com
*: :fail: No user at this address.
ด้วยวิธีนี้แม้ว่า fwd@example.com จะไม่ตรงกับบัญชีอีเมลใด ๆ บนเซิร์ฟเวอร์ แต่จะตรงกับใน/etc/valiases
ไฟล์และอีเมลจะถูกส่งต่อไปยัง example@gmail.com - อย่างไรก็ตาม foo@example.com จะยังคงล้มเหลวด้วย ข้อความ "ไม่มีผู้ใช้ที่อยู่นี้"
sudo tasksel install mail-server
วิธีที่ง่ายที่สุดคือการทำงาน ที่จะให้เซิร์ฟเวอร์อีเมลที่มีค่าเริ่มต้นมีสติ สิ่งที่คุณต้องทำคือตอบคำถามสองสามข้อ เห็นได้ชัดว่าคุณยังคงสามารถกำหนดค่าด้วยตนเองได้ในภายหลังหากจำเป็น แต่ในกรณีส่วนใหญ่จะไม่เป็นเช่นนั้น เพียงทำตามคำแนะนำบนหน้าจอและคุณก็ควรจะปรับ
การอ่านเกี่ยวกับการจัดการบริการอีเมลนั้นเป็นสิ่งที่แนะนำได้อย่างแน่นอน
การอ้างอิงอย่างเป็นทางการ:
sudo tasksel --task-packages mail-server
ฉันไม่มี "คำตอบที่ดี" แต่คุณอาจพบว่าลิงก์เหล่านี้มีประโยชน์https://help.ubuntu.com/community/PostfixBasicSetupHowto# การรับจดหมายและhttps://help.ubuntu.com/community/Postfix
เพิ่งทำสิ่งนี้ด้วยตัวคุณเองคุณต้องการ postfix และในกรณีของฉันฉันต้องการเซิร์ฟเวอร์ imap ด้วยเพื่อที่ฉันจะสามารถใช้ไคลเอนต์ gui ที่ดี (ไม่พูดถึงชื่อใด ๆ ) บนเครื่องอื่น ฉันใช้เอกสารเหล่านี้:
Dovecot (imap และ pop3)
มันค่อนข้างง่ายจริง ๆ แล้วเริ่มต้นใช้งานในอีกไม่กี่นาทีและรับอีเมล นี้ยังเป็นประโยชน์ในการตรวจสอบว่าทุกอย่างที่มีการตั้งค่า ok pingability
โอ้และแน่นอนคุณจะต้องตั้งค่ารายการ DNS ของคุณอย่างถูกต้องดังต่อไปนี้ (ขึ้นอยู่กับการตั้งค่าที่เหมาะกับฉัน):
name type content
@ A ???.???.??.??
mail A ???.???.??.??
และ
MX Records
Name Priority
mail.mydomain.com. 1
mail2.mydomain.com. 2
จดบันทึกการหยุดแบบเต็มเมื่อสิ้นสุดเมลเซิร์ฟเวอร์และใส่ที่อยู่ IP และชื่อโดเมนของคุณตามความเหมาะสม