WHMCS是一個非常強大的財務管理系統,由於我在搭建其雲否主機時用WHMCS對接SolusVM,發現在使用WHMCS時遇到了不少的問題。第一個問題就是WHMCS改用SMTP發信。預設的可以使用WHMCS的PHP發信,但是發出的信多數被各大郵件商丟進了垃圾箱中。

所以,WHMCS最好是使用SMTP發信。不過,WHMCS有個毛病就是設定了SMTP發信後,沒有像WordPress第三方SMTP發信那樣,可以提前測試一下,這導致在調試問題的過程中遇到很大的阻力。這篇文章就來分享我設定WHMCS SMTP發信的問題及解決方法。

另外,WHMCS還有一個定時任務設定的問題,如果你是將WHMCS安裝在虛擬主機上,那麼就需要到虛擬主機新增定時任務。如果你是安裝在VPS主機上,那麼你還需要到VPS中設定Cron定時任務。如果不注意PHP環境,直接使用預設的指令很容易出現不執行的情況。

WHMCS使用SMTP發信,中文漢化,定時任務設定,優惠碼設定以及郵件範本修改方法

總之,在使用WHMCS前還是建議先查閱WHMCS的官方文檔,這樣在使用的過程中不會出現WHMCS低階錯誤。 更多的WHMCS使用方法,可以參考專題:WHMCS從入門到精通。更多關於WHMCS整合的教學有:

  1. VestaCP與WHMCS整合教學-實現自助開通虛擬主機銷售主機空間產品
  2. WHMCS新增支付寶微信付款、主題範本修改方法和PDF發票亂碼問題解決
  3. 利用SolusVM在伺服器/VPS上開設NAT VPS主機-整合WHMCS開賣NAT VPS

PS:2019年4月3日更新,WHMCS開源的支付網關可以看看這裡:WHMCS支付網關-開源免費的WHMCS支付寶,微信和有讚插件安裝與使用。

一、WHMCS SMTP發郵件

1.1  SMTP設定

網站:

  1. HTTPS://嗚嗚嗚.我還沒出生.com/

進入WHMCS後,在“設定”中選擇“郵件”,然後選擇使用SMTP發信,一般來說你可以選擇465埠+SSL的形式,如下圖:

這裡我選擇了Gmail,對於每天發信量大的建議使用付費的SMTP,詳情查看:國內外企業(域名)郵箱匯總。

1.2  發信錯誤

在測試時有可能出現錯誤,我們在日誌中可以看到。

詳細錯誤如下:

Email Sending Failed – SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting (Subject: Confirm Your Registration)

1.3  解決問題

一般來說,25埠基本上被各大主機商已經關閉了,465埠可以自己在防火牆打開,指令如下:

/sbin/iptables -I INPUT -p tcp --dport 465 -j ACCEPT
/sbin/iptables -I OUTPUT -p tcp --dport 465 -j ACCEPT

儲存/etc/rc.d/init.d/iptables save重啟服務service iptables restart,查看需要開啟的連接埠是否生效?

/etc/init.d/iptables status

然後再使用SMTP的465SSL連線方式寄信即可。如果安裝的CSF防火牆,在csf.conf檔案裡,修改PORTFLOOD配置,加上465的出和入就OK。一般CSF防火牆預設的是開放了465的入站,但沒有開放出,所以要設定下。修改後儲存,然後csf -r ,重啟,就OK了。

上面方法wzfou.com還沒解決,於是我在configuration.php中加入:

$smtp_debug = true;

這時候就可以看到詳細的錯誤訊息了。對於Gmail,還需要透過以下三個連結位址來解決安全限制。尤其是第三個:

  1. HTTPS://security.Google.com/settings/security/activity?後來=恩&霹靂=1
  2. HTTPS://嗚嗚嗚.Google.com/settings/U/1/security/less secure apps
  3. HTTPS://accounts.Google.com/不/0/display unlock cap太差

Google對於新裝置登入會要求驗證,我們可以手動取消它。

最後,如果SSL發信方式失敗的話,可以使用587+TSL來寄信,如下圖:

WHMCS使用SMTP發信成功。

WHMCS使用SMTP發信效果

二、WHMCS中文漢化

網站:

  1. HTTPS://GitHub.com/Kane awk/WH MCs-cn-translations

使用方法:

1. Upload lang/chinese-cn.php to your whmcs_install_dir/lang/ path.
if you current use WHMCS v6.3.0 or higher, you should rename original chinese.php to chinese-tw.php manually. Because original chinese.php was a Traditional Chinese edition.

2. Upload admin/lang/chinese-cn.php to your whmcs_install_dir/admin_dir/lang/ path.
3. Sign out your admin account, then choose Chinese language on login page.
4. Click the "My Account", Change language to Chinese, Enter your admin password at "Confirm Password" line, at last click "Save Changes" button.
5. Goto "Setup > General Settings", click "Localisation" tab, set "Default Language" to Chinese, at last click "Save Changes" button.

中文漢化的效果請見:qyfou.com,如下圖:

三、WHMCS定時任務設置

安裝完了WHMCS後,一般會給予一段定時任務的程式碼,要求你加:

php -q /home/wzfou.com/admin/cron.php

如果是VPS主機,請執行下列指令:

crontab -e
php -q /home/wzfou.com/admin/cron.php

#如果不执行,请加上环境变量
01 1 * * * /usr/local/php/bin/php -q /home/wzfou.com/admin/cron.php

如果是虛擬主機,以Cpanel為例,可以在定時任務中新增。

如果一切正常的話,你在WHMCS的定時任務狀態就可以看到正確執行的情況了。

四、WHMCS優惠碼設置

WHMCS優惠碼可以在付款中查看。 循環優惠碼。 選這個就可以每次續費也可以享受優惠。

WHMCS優惠碼可以專門設定針對升級或降級的。

五、WHMCS郵件範本問題

我在使用WHMCS的過程中,遇到了郵件模板出錯導致郵件死活也發不出去的情況,解決的方法就是學會看郵件日誌,然後自己修改郵件模板。

六、WHMCS時區(時間)設定

WHMCS上的時間和伺服器上設定的是不一樣的,按照他的預設時區顯示,因此為了讓WHMCS顯示的時間和自己的時間一致,需要在設定檔中設定時區。

編輯configuration.php文件,在php區塊(?>)最後位置加上

date_default_timezone_set('Asia/Shanghai');

七、總結

WHMCS是一個非常成熟的財務管理系統,從我使用WHMCS與SolusVM的感受來看,WHMCS的官方文件更新很快,並且很完善,反而SolusVM的參考文檔不僅陳舊,而且還有不少的錯誤。

如果你在WHMCS設定SMTP發信、優惠碼設定、郵件範本以及定時任務過程中遇到問題,不妨先看看WHMCS的相關日誌,WHMCS的日誌中可以看到詳細的錯誤,這便於我們進行分析。

發表評論