為什麼這篇ubuntu postfix設定鄉民發文收入到精華區:因為在ubuntu postfix設定這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者cleanwind (骨傲風清(掛網))看板PHP標題Re: [請益] 在 Linux 下使用外...
※ 引述《cleanwind (骨傲風清(掛網))》之銘言:
: 想請問大家一個問題,
: 寄信最簡單的 func 應該就屬 mail 了。
: 在 Windows 下要使用外部的 SMTP,
: 只需要設定 php.ini 的 SMTP 與 sendmail_from ,
: 通常 Port 是預設 25 。
: 但是如果是在 Linux 下呢?
: 我該怎麼設定,才能使用外部的 SMTP 寄信呢?
※ 引述《cleanwind (骨傲風清(掛網))》之銘言:
: 想請問大家一個問題,
: 寄信最簡單的 func 應該就屬 mail 了。
: 在 Windows 下要使用外部的 SMTP,
: 只需要設定 php.ini 的 SMTP 與 sendmail_from ,
: 通常 Port 是預設 25 。
: 但是如果是在 Linux 下呢?
: 我該怎麼設定,才能使用外部的 SMTP 寄信呢?
========= 本文歡迎轉載,但請註明 [email protected] =========
我嘗試了好久,終於找到方法。
不過坦白說我真的不知道,這到底該算 PHP 還是 Linux?
不過我對 PHP 版比較熟,所以就 PO 在這,
如果版主覺得不適當,請給小的一個機會自己動刀 XD
測試環境:LAMP
L: Ubuntu 9.0.4
A: Apache 2.2.11-2ubuntu2.3
M: mysql 5.1.30really5.0.75-0ubuntu10.2
P: PHP 5.2.6.dfsg.1-3ubuntu4.2
如果不知道該怎麼架起來的朋友,因為和本版差距太遠,
麻煩站內信或 MSN: [email protected] 問我囉。
網路上有人問這個問題,就會有人回應,
「你就在 php.ini 裡面設定 SMTP 和 smtp_port 就好」
非常厲害的可以完全忽略 For Win32 Only. 這幾個字,
甚至還會出現再度忽略 For Win32 Only. 的回應,
「不能使用的話記得要設定 sendmail_from 喔!」
如果你選擇 Windows XP 或 Windows Server 2003 ,
或者其他由 Microsoft 出產的作業系統,
那麼此篇文章可以丟入資源回收桶,
如果你的作業系統只有回收桶,那可能就要注意一下了 XD
不過在開始之前,我必須很誠實的說我沒有使用過 PHPMailer ,
這是因為謠傳 PHPMailer 會有一些小 bug ?!
再加上我對於 PHP的 Code 有很強烈的潔癖,
我無法忍受我不了解的東西在我的網頁裡面 XD
Ubuntu 系統建議安裝的是 postfix ,
也聽說 postfix 比 sendmail 容易設定,
這邊我選用的是 postfix 2.5.5-1.1 ,
使用 套件管理程式 安裝時,會出現問你要選擇什麼,
如果你要使用外部的 SMTP ,那麼請選擇 satellite system ,
之後會再問你要使用的 SMTP Server 與 本機的網域名稱(FQDN),
設定完成後,等待安裝結束就好了。
這時候打開 php.ini ,在下的環境是放在 /etc/php5/apache2/php.ini
cleanwind@ptt-php:~$ sudo gedit /etc/php5/apache2/php.ini
就可以使用視窗編輯程式,搜尋 SMTP 把 SMTP 和 smtp_port 前面加入分號,
變成底下這樣
; SMTP = localhost
; smtp_port = 25
如果 sendmail_from 前面有分號的話,請拿掉並填入適當的參數,
sendmail_from = /usr/sbin/sendmail -t -i -f [email protected]
不過加了這段參數似乎發生了問題,寄件人可能會變成 www-data,
解決方法有二,一是使用 mail() 的 標頭 參數解決;
二則是加入另一段參數 -F 'cleanwind',變成
sendmail_from = /usr/sbin/sendmail -t -i -f [email protected] -F 'cleanwind'
這樣收件人看到的就是 "cleanwind" 了。
如果發出去的信還一直都沒有收到,懷疑是 postfix 有問題,
那麼可以從紀錄檔略窺一二, mail.info 或 mail.log 都會有。
如果需要做更進一步的設定, postfix 的設定檔在 /etc/postfix/main.cf
cleanwind@ptt-php:~$ sudo gedit /etc/postfix/main.cf
都設定完畢後就是重新啟動 Apache 與 postfix 了,
cleanwind@ptt-php:~$ sudo /etc/init.d/postfix restart
cleanwind@ptt-php:~$ sudo /etc/init.d/apache2 restart
另外值得一提的是,postfix似乎是不允許本機之外的 relay 轉信,
sendmail參數參考網頁 http://www.courier-mta.org/sendmail.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.145.203.222