天天看点

PHP邮件发送

发送邮件方法
      
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; 
           

总结:前端只需要写一个简单的接口请求到后端,后端按照数据处理把需要的参数写入到对应的地方就可以

期待大家点赞支持