環(huán)境要求
  • 主機465端口是開啟和放行的
  • php擴展openssl是開啟的
  • php擴展sockets是開啟的
  • 虛擬主機必須開啟fsockopen函數(shù)
例如本地環(huán)境phpstudy開啟這2個擴展


阿里云虛擬主機開啟fsockopen函數(shù)

1、QQ郵箱 或者 163郵箱 126郵箱 開啟SMTP服務,拿到授權碼,根據(jù)自己的來

  • QQ郵箱開啟SMTP服務 和 獲取授權碼
  • 163郵箱開啟SMTP服務和 獲取授權碼
  • 126郵箱開啟SMTP服務,跟163一樣。

2、網(wǎng)站后臺 - 系統(tǒng) - 系統(tǒng)基本參數(shù) - 核心設置

  • 是否啟用SMTP方式發(fā)送郵件:是
  • SMTP服務器:ssl://smtp.163.com 或者 ssl://smtp.qq.com
  • SMTP服務器端口:465
  • SMTP服務器的用戶郵箱:yingzicms@163.com 或者 6364544@qq.com
  • SMTP服務器的用戶帳號:yingzicms 或者 6364544
  • SMTP服務器的用戶密碼:填你郵箱授權碼,不是郵箱登錄密碼
配置163郵箱的是這樣

配置QQ郵箱的是這樣

配置126郵箱的是這樣

3、網(wǎng)站后臺 - 系統(tǒng) - 系統(tǒng)基本參數(shù) - 添加新變量
  • 變量名稱:cfg_shoujianren
  • 變量類型:文本
  • 參數(shù)說明:收件人
  • 變量值:6364544@qq.com
  • 所屬組:站點設置


4、打開 /plus/diy.php 找到
 
$id = $dsql->GetLastID();
 
在它的下面加入
 
$mailtitle = "{$diy->name}--留言通知";
$mailbody = '';
foreach($diy->getFieldList() as $field=>$fieldvalue)
{
$mailbody .= "{$fieldvalue[0]}:{${$field}}\r\n";
}
$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;
if($cfg_sendmail_bysmtp == 'Y' && !empty($cfg_smtp_server))
{
$mailtype = 'TXT';
require_once(DEDEINC.'/mail.class.php');
$smtp = new smtp($cfg_smtp_server,$cfg_smtp_port,true,$cfg_smtp_usermail,$cfg_smtp_password);
$smtp->debug = 0;//發(fā)送不成功把0改成1,再提交看錯誤信息
$smtp->sendmail($cfg_shoujianren,$cfg_webname ,$cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
}
else
{
@mail($cfg_shoujianren, $mailtitle, $mailbody, $headers);
}
 
至此自定義表單發(fā)送郵件通知管理者完成

網(wǎng)易企業(yè)郵亂碼的解決方法

打開 /plus/diy.php 找到
$headers = "From: ".$cfg_adminemail."Reply-To: ".$cfg_adminemail;
在它下面加入一行
$mailbody = mb_convert_encoding($mailbody, "GBK", "UTF-8");
完成