在现代网站开发中,配置邮件发送功能是一项常见的需求。本文将详细介绍如何通过QQ邮箱、163邮箱或126邮箱开启SMTP服务,并将其集成到网站后台系统中。

首先,我们需要为邮箱开启SMTP服务并获取授权码:

对于QQ邮箱:

登录QQ邮箱后,进入设置页面,找到“账户”选项卡下的“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”。开启SMTP服务并生成授权码。

对于163邮箱和126邮箱:

登录邮箱后,进入设置页面中的“客户端授权密码”部分,开启SMTP服务并获取授权码。126邮箱的步骤与163邮箱相同。


接下来,在网站后台进行相关配置:

进入网站后台,依次点击“系统” -> “系统基本参数” -> “核心设置”。在这里,我们需要填写以下信息:

是否启用SMTP方式发送邮件:选择“是”。

SMTP服务器:根据使用的邮箱类型,填写ssl://smtp.163.com(适用于163邮箱)或ssl://smtp.qq.com(适用于QQ邮箱)。

SMTP服务器端口:统一填写465。

SMTP服务器的用户邮箱:例如gooxao@163.com或9490489@qq.com。

SMTP服务器的用户帐号:如gooxao或9490489。

SMTP服务器的用户密码:这里需要填写邮箱授权码,而不是登录密码。


然后,在系统基本参数中添加一个新的变量:

变量名称:cfg_shoujianren

变量类型:文本

参数说明:收件人

变量值:例如9490489@qq.com

所属组:站点设置


最后,编辑代码文件以实现邮件发送功能:

打开 /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 = false; // 发送不成功时可将false改为true查看错误信息
    $smtp->sendmail($cfg_shoujianren, $cfg_webname , $cfg_smtp_usermail, $mailtitle, $mailbody, $mailtype);
} else {
    @mail($cfg_shoujianren, $mailtitle, $mailbody, $headers);
}

完成以上步骤后,您的网站将能够通过SMTP服务发送邮件。记得测试邮件发送功能,确保一切正常运行。


希望这篇文章能帮助您顺利完成邮件发送功能的配置!如果您有任何疑问,请随时留言咨询。