2010年9月2日 星期四

linux系統下joomla1.5使用gmail做為smtp的設定法

前先以下述的設定方式,使得joomla1.5確實可以用gmail smtp寄信:
1.首先編輯joomla安裝目錄下的     libraries/phpmailer/phpmailer.php
var $Host= "localhost";   改為   var $Host= "你的帳號@gamil.com";
var $Port= 25;   改為   var $Port= 465;
var $SMTPAuth= false;   改為   var $SMTPAuth= true;
var $Username= "";   改為   var $Username = "你的帳號@gamil.com";
var $Password= "";   改為   var $Password= "你的密碼";
var $Timeout= 10;   改為   var $Timeout= 60;
2.再來編輯      libraries/phpmailer/smtp.php
var $SMTP_PORT = 25;   改為   var $SMTP_PORT = 465;
$this->smtp_conn = fsockopen($host,   改為   $this->smtp_conn = fsockopen("ssl://" . $host,
3.最後進入Joomla的主控台點選「網站」-「全站設定」-「伺服器」
「電子郵件」的地方設定
如下圖的設定,就可以了!
image
完成,你可以用gmail做smtp發信了
今日因為試著以seednet smtp來寄信,後來試不成,而將資料恢復,結果是一切照舊的方式,卻無法寄了,於是試看看用Silvia,所提的 libraries/phpmailer那些設定都不要改,然而設的結果是在前台註冊可以,但後台裏大量郵件就不成了,後來只設定smtp.php,就前 後台都可以,只是因為前天,我的gmail因為發送造過100封上的信件,結果到現在還沒被解禁,所以真實的狀況如何,還需一段時間測試。若有人測試的結果如何?也希望能在這裏發表一下你的心得!

6 則留言:

Unknown 提到...

發哥 您好
我是在自己公司的windows server架設joomla網站,但在使用郵件設定這部份一直試不出來,我是使用GMAIL.
在後台的郵件設定皆照您文章所示輸入,試不出來,我再到libraries/phpmailer底下去設定你原先註明在linux系統下所需做的設定.
核對了好幾遍,確定修改的跟設定的內容皆照您文中所示,.....
但測試還是出現"SMTP錯誤!無法連接到SMTP主機。"

不知道是否還有那裡是我未注意到的?再請發哥能給在下指點迷津,感激不盡!!

Silvia

發哥 提到...

原來的文章,在最後的全站設定的郵件設定裏,有地方漏了,現以更新,不好意思,請參考原文章新增的最後圖片設定,應該就可以了,筆誤而造成你的不便,在此表示歉意!
另外,你要注意,windows系統下的「\」符與linus的「/」符,必須調整!

Silvia 提到...

發哥 您好,

非常感謝你的回覆,我在全站設定的郵件設定裡依照你的圖片所以輸入,測試不行.

再到libraries/phpmailer(雖然我不是架在Linux)去改設定,仍舊不行.

我測試在遠端(公司的windows server)跟在自己的電腦(localhost)都一樣不行.

我再測試用公司的mail server主機(他跟gmail設定不同的是在後台我的SMTP認證是否,安全性是無,Port是25..等),就可以正常寄出郵件.

我也到防火牆看有沒有鎖SMTP,確定也沒鎖...

我也再用免費的Hinet測試,(Hinet設定一樣不用SMTP認證,無安全性,Port25)就正常..(似乎我只要選要認證要用SSL,Port用465就會不成功)...

我甚至在想是我joomla版本(Joomla1.5.18)的問題嗎?為何爬遍各大相關論壇大家照您方式設定都可以,單就我怎麼試都不行>"<

真的很不好意思,寫的文章這樣落落長,盼發哥能再次賜教,感激萬分!!!

Silvia

Silvia 提到...

發哥 您好:

暨上封留言,我又測試了一樣東西就可以了,特此回到這回報,希望其他人有smtp設定上的問題也能有收穫.再次感謝!!

(我安裝的Joomla1.5.18版本,ssl預設是沒有開的)
到php.ini約第602行
把extension=php_openssl.dll前面原本存在的";"拿掉.
再重新啟動apache.即可正常使用.
(還有一點,在windows系統下libraries/phpmailer那些設定都不要改,改了設定就又不成功了)

Silvia

發哥 提到...

很遺憾的沒有幫上忙,只是我的joomla 1.5系統確實是依上面的設定方法,就可以用gmail的smtp來寄信了。
話說回來,開放原始碼的程式,就是這樣有可塑性,也所以管理起來,當遇到問題時,有時還真不是簡單能捉到問題的關鍵,不管怎樣,至少恭禧你問題決解了。原來是ssl沒有被啟動!

發哥 提到...

今天又用Joomla架了一個上傳下架的網站,由於不需要社群的功能,所以我就沒有安裝cb的擴展,當然login模組也就直接用joomla內建的,而我也設了gmail的smtp,但比照之前的設法,只改smtp.php,這個檔,但卻不行寄信,結果smtp.php與phpmailer.php都以系統內定不改,反而可以寄信,於是很不相信的以ssh登入原先的另一個網站查看一下smtp.php的設定,發現確實是如原來說的一樣,有做更改為:
var $SMTP_PORT = 25; 改為 var $SMTP_PORT = 465;
$this->smtp_conn = fsockopen($host, 改為 $this->smtp_conn = fsockopen("ssl://" . $host,
然而不知怎麼的,這個新的網站就不用做調整?難到關鍵會是在CB嗎?若有類似經驗的,不同經驗的,歡迎來分享一下吧!