2017年5月8日9:10:47
1.在模块的配置文件中加入下里面代码,账号最好用126邮箱
\'THINK_EMAIL\' => array(
\'SMTP_HOST\' => \'smtp.163.com\', //SMTP服务器
\'SMTP_PORT\' => \'465\', //SMTP服务器端口
\'SMTP_USER\' => \'ihtxt@126.com\', //SMTP服务器用户名
\'SMTP_PASS\' => \'ihtxt.com\', //SMTP服务器密码
\'FROM_EMAIL\' => \'wdxy@126.com\', //发件人EMAIL
\'FROM_NAME\' => \'沃德学院\', //发件人名称
\'REPLY_EMAIL\' => \'wdxy@163.com\', //回复EMAIL(留空则为发件人EMAIL)
\'REPLY_NAME\' => \'沃德学院\', //回复名称(留空则为发件人名称)
),
2.在模块的函数库中加入下面代码
function think_send_mail($to, $name, $subject = \'\', $body = \'\', $attachment = null){
$config = C(\'THINK_EMAIL\');
vendor(\'PHPMailer.class#phpmailer\'); //从PHPMailer目录导class.phpmailer.php类文件
$mail = new PHPMailer(); //PHPMailer对象
$mail->CharSet = \'UTF-8\'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
$mail->IsSMTP(); // 设定使用SMTP服务
$mail->SMTPDebug = 0; // 关闭SMTP调试功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 启用 SMTP 验证功能
$mail->SMTPSecure = \'ssl\'; // 使用安全协议
$mail->Host = $config[\'SMTP_HOST\']; // SMTP 服务器
$mail->Port = $config[\'SMTP_PORT\']; // SMTP服务器的端口号
$mail->Username = $config[\'SMTP_USER\']; // SMTP服务器用户名
$mail->Password = $config[\'SMTP_PASS\']; // SMTP服务器密码
$mail->SetFrom($config[\'FROM_EMAIL\'], $config[\'FROM_NAME\']);
$replyEmail = $config[\'REPLY_EMAIL\']?$config[\'REPLY_EMAIL\']:$config[\'FROM_EMAIL\'];
$replyName = $config[\'REPLY_NAME\']?$config[\'REPLY_NAME\']:$config[\'FROM_NAME\'];
$mail->AddReplyTo($replyEmail, $replyName);
$mail->Subject = $subject;
$mail->AltBody = "为了查看该邮件,请切换到支持 HTML 的邮件客户端";
$mail->MsgHTML($body);
$mail->AddAddress($to, $name);
if(is_array($attachment)){ // 添加附件
foreach ($attachment as $file){
is_file($file) && $mail->AddAttachment($file);
}
}
return $mail->Send() ? true : $mail->ErrorInfo;
}
3.下载mail插件解压到ThinkPHP/Library/Vendor目录中,再将PHPMail目录中的class.smtp.php复制一份到Vendor目录中并
重命名为SMTP.php
4.修改php.int文件
windows下在php.ini中去掉下面的分号
extension=php_openssl.dll
并将allow_url_fopen = Off改为
allow_url_fopen = On
5.在控制器中使用函数
$r = think_send_mail(\'要发送的邮箱\',\'发送人名称,即你的名称\',\'文件标题\',\'邮件内容\');
相关文章: