POST TIME:2017-11-13 00:55
昨天做一個(gè)DEDE(織夢)項(xiàng)目的時(shí)候用到了郵件發(fā)送功能,剛開始在網(wǎng)上找郵件發(fā)送的功能,發(fā)現(xiàn)很多都是引入一個(gè)PHPMailer
類,用這個(gè)類來做郵件發(fā)送。我剛開始也想用這個(gè)來做的,但是在找這個(gè)類的下載地址的時(shí)候突然想到了DEDECMS好像自帶郵件發(fā)送功能。于是放棄了找 PHPMailer
類,開始找DEDE自帶郵件發(fā)送功能。
由于只記得后臺(tái)設(shè)置中有個(gè)地方是設(shè)置發(fā)件人郵箱的,所以我們到后臺(tái)找到了這個(gè) $cfg_smtp_usermail 這個(gè)全局變量。在編輯器中(我覺得Komodo Edit這個(gè)編輯器挺好用的~)全局搜索,發(fā)現(xiàn)這個(gè)變量是在 /dede/mail_send.php
這個(gè)文件中使用的。打開文件,發(fā)現(xiàn)下面代碼:
//郵件發(fā)送函數(shù) function sendmail($email, $mailtitle, $mailbody) { global $cfg_sendmail_bysmtp, $cfg_smtp_server, $cfg_smtp_port, $cfg_smtp_usermail, $cfg_smtp_user, $cfg_smtp_password, $cfg_adminemail,$cfg_webname; if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server)) { $mailtype = 'HTML'; require_once(DEDEINC.'/mail.class.php'); $smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password); $smtp->debug = false; if(!$smtp->smtp_sockopen($cfg_smtp_server)){ ShowMsg('郵件發(fā)送失敗,請聯(lián)系管理員','-1'); exit(); } $smtp->sendmail($email,$cfg_webname,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype); }else{ @mail($email, $mailtitle, $mailbody, $headers); } }
mail.class.php
就是DEDE定義的郵件發(fā)送類,位于 /include
目錄下。
我們可以把這個(gè)函數(shù) Copy 出來,放到我們自己的代碼文件中,然后使用 sendmail
函數(shù)發(fā)送郵件就行。
當(dāng)然,在使用之前,我們需要在后臺(tái)填寫郵件發(fā)送的幾個(gè)配置參數(shù):
打開后臺(tái),找到 “系統(tǒng)”–“系統(tǒng)設(shè)置”–“系統(tǒng)基本參數(shù)”–“核心設(shè)置”,可以看到如下參數(shù),我們把這幾項(xiàng)填寫完保存就行了。
比如我們使用QQ郵箱的話,把 smtp服務(wù)器
換成 smtp.qq.com
,QQ的端口好像是465;SMTP服務(wù)器郵箱
填寫QQ郵箱;SMTP服務(wù)器用戶帳號(hào)
其實(shí)沒什么用,隨便寫上就行,也可以直接寫成QQ郵箱;SMTP服務(wù)器的用戶密碼
寫QQ郵箱密碼。
看完如果還有什么不懂的歡迎留言詢問~
下一篇我們會(huì)寫一下如何在 DEDE自定義表單中使用郵件發(fā)送功能來把表單內(nèi)容發(fā)送到指定郵箱。