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