ตั้งค่าเซิร์ฟเวอร์อูบุนตูเพื่อส่งจดหมาย ()


40

ฉันพยายามค้นหาจำนวนมาก แต่ไม่สามารถหาวิธีตั้งค่าเซิร์ฟเวอร์ ubuntu จริง ๆ ได้เพื่อที่ฉันจะสามารถส่งอีเมลผ่าน php โดยใช้ฟังก์ชัน mail () ใน php

ฉันมี apache2, mysql และ php5 ติดตั้งบนเซิร์ฟเวอร์ของฉัน

ขอขอบคุณ.

คำตอบ:


45

ฉันยังเห็นด้วยที่ไม่มีบทเรียนสำหรับผู้ที่ต้องการสคริปต์เพื่อส่งเช่นอีเมลระบุข้อผิดพลาดและไม่ต้องการเซิร์ฟเวอร์อีเมลแบบเต็ม

ก่อนอื่นถ้า postfix ที่ยังไม่ได้ติดตั้งให้ทำ:

sudo apt-get install postfix

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

ณ จุดนี้คุณควรจะสามารถใช้ "จดหมาย" จาก commandline เพื่อส่งการทดสอบ (ฉันมักจะทำตามคำแนะนำในhttp://ubuntuforums.org/showthread.php?t=38429ก่อนอื่นฉันต้องใช้-fflag เพื่อ/usr/bin/sendmailฉันยังต้องการสร้าง/etc/aliasesด้วยรายการสำหรับ root และผู้ใช้ปกติของฉันแล้วเรียกใช้newaliases)

จากนั้นภายใต้ /etc/php5/conf.d สร้างไฟล์ (เช่น mailconfig.ini) ด้วยเนื้อหาเหล่านี้:

sendmail_from = "me@example.com"
sendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"

เปลี่ยน me@example.com เป็นที่อยู่อีเมลของคุณ พวกเขาหมายความว่าอีเมลทั้งหมดจะดูเหมือนที่คุณส่งมาซึ่งสามารถช่วยป้องกันไม่ให้ถูกปฏิเสธได้ สิ่งนี้ก็เพียงพอแล้วสำหรับการส่งอีเมลข้อผิดพลาดไปยังนักพัฒนาซอฟต์แวร์

(คำแนะนำข้างต้นผ่านการทดสอบบน Ubuntu 10.04, 11.04, 11.10, 12.04)

ป.ล. ตามที่ชี้ให้เห็นโดย razzed ในความคิดเห็นที่mailไม่เคยมี (เช่นบน Ubuntu 11.10 มันหายไป) สิ่งนี้ไม่ส่งผลกระทบต่อคำแนะนำข้างต้นคุณเพียง แต่ต้องmailทำการทดสอบและคุณก็สามารถใช้ได้sendmailเช่นกัน แต่mailก็มีประโยชน์สำหรับการอ่านอีเมลด้วยดังนั้นจึงเป็นเรื่องที่ควรค่าแก่การติดตั้งด้วย: apt-get install mailutils(เหมือนรูท)


1
ขอบคุณ! มันทำงานได้อย่างสมบูรณ์แบบ ทดสอบบน Ubuntu 12.04 LTS x64
สกอตต์เทรนต์

วิธีนี้ช่วยแก้ไขการค้นหาโดยใช้ NGINX ด้วยเช่นกัน! และ PHP5-FPM
TheBlackBenzKid

1
หมายเหตุในโฮสต์ของฉันmailยูทิลิตีบรรทัดคำสั่งไม่ได้รับการติดตั้งในการติดตั้ง Ubuntu ที่สะอาดและการติดตั้ง PostFix ไม่ได้ติดตั้ง พยายามที่sudo apt-get install mailutilsจะmailรับคำสั่งหรือใช้ทางเลือกเช่น Mutt หรือssmtp
razzed

ฉันต้องการสัปดาห์ที่จะคิดออกว่าสิ่งที่อยู่ข้างหลังsendmail_pathจะต้อง"ทำงานอย่างถูกต้องเช่นsendmail_path = "/usr/sbin/sendmail -t -i -f me@example.com"
Sliq

1
ที่สุด! วิธีการแก้ปัญหาตรงไปตรงมาและเรียบง่าย ทำงานบน Ubuntu 14.04
Knyri

2

คุณจะต้องตั้งค่าเซิร์ฟเวอร์ ubuntu เพื่อให้สามารถส่งอีเมล ... เป็นตัวอย่างคุณสามารถติดตั้งและกำหนดค่า postfix ได้

เอกสาร Ubuntu มีหน้าดีที่https://help.ubuntu.com/community/MailServer


การสอนใด ๆ ที่คุณสามารถเชื่อมโยงฉันไป?
Shishant

เพิ่มลิงค์การสอน
Dominik

1

ผ่านกระบวนการอันเจ็บปวดของการตั้งค่าเซิร์ฟเวอร์อีเมลโดยตรงบนเซิร์ฟเวอร์ของคุณ (postfix, ฯลฯ ) หรือใช้ไลบรารีที่จะช่วยให้คุณเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ smtp


0

ครั้งแรกที่คุณควรติดตั้งแพคเกจ XMail และถ้ามันยังไม่ทำงานได้ดูมากกว่าที่นี่

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