发送邮件方法
function sendMail($to,$title,$content) {
// 下载的PHPMailer
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
//使用smtp鉴权方式发送邮件
$mail->isSMTP();
//smtp需要鉴权 这个必须是true
$mail->SMTPAuth = true;
// qq 邮箱的 smtp服务器地址,这里当然也可以写其他的 smtp服务器地址
$mail->Host = 'smtp.exmail.qq.com';
//smtp登录的账号 这里填入字符串格式的qq号即可
$mail->Username = '[email protected]';
// 这个就是之前得到的授权码,一共16位
$mail->Password = '';
$mail->setFrom('[email protected]', '[email protected]');
// $to 为收件人的邮箱地址,如果想一次性发送向多个邮箱地址,则只需要将下面这个方法多次调用即可
$mail->addAddress($to);
// 该邮件的主题
$mail->Subject = '网站留言';
// 该邮件的正文内容
$mail->Body = $content;
// 使用 send() 方法发送邮件
if(!$mail->send()) {
$data['code'] = 0;
$data['msg'] = '发送失败: ' . $mail->ErrorInfo;
return $data;
} else {
$data['code'] = 1;
$data['msg'] = '发送成功';
return $data;
}
}
function timediff($end_time){
$begin_time = time();
if($begin_time < $end_time){
$starttime = $begin_time;
$endtime = $end_time;
}else{
$starttime = $end_time;
$endtime = $begin_time;
}
//计算天数
$timediff = $endtime-$starttime;
$days = intval($timediff/86400);
//计算小时数
$remain = $timediff%86400;
$hours = intval($remain/3600);
//计算分钟数
$remain = $remain%3600;
$mins = intval($remain/60);
//计算秒数
$secs = $remain%60;
$d1 = 0;
$d2 = 0;
$d3 = 0;
if($days !=0){
$d1 = $days*24*60*60;
}
if($hours !=0){
$d2 = $hours*60*60;
}
if($mins !=0){
$d3 = $mins*60;
}
// $res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
// print_r($res);
// var_dump($d1+$d2+$d3+$secs);exit;
return $d1+$d2+$d3+$secs;
}
接收前端请求方法(根据个人需求传需要的数据到后端)
// 调用发送方法,并在页面上输出发送邮件的状态
header('Access-Control-Allow-Origin: *');
$url = $_SERVER["HTTP_REFERER"]; //获取完整的来路URL
$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分开成数组
$domain = $strdomain[0];//取第一个“/”以前的字符
// $domain = $_POST['domain'];
$title = $_POST['title'];
$content = $_POST['content'];
$lifeTime = 1 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$ip = $_SERVER['REMOTE_ADDR'];
// $_COOKIE["$ip"] = $time;
if($_SESSION[$ip] != ''){
$ip_time = timediff($_SESSION["$ip"]);
if($ip_time <10){
$data['code'] = 0;
$data['msg'] = '请在10秒之后在请求';
echo json_encode($data);exit;
}else{
$_SESSION[$ip] = time();
}
}else{
$_SESSION[$ip] = time();
}
$res = sendMail('[email protected]',$title,$content);
echo json_encode($res);exit;
总结:前端只需要写一个简单的接口请求到后端,后端按照数据处理把需要的参数写入到对应的地方就可以
期待大家点赞支持