来源:CSDN

前提:阿里云开通邮件推送服务

[loginshow]

<?php

/**

 * @param $address mixed 收件人 多个收件人/或需要设置收件人昵称时为数组 array($address1,$address1)/array(array('address'=>$address1,'nickname'=>$nickname1),array('address'=>$address2,'nickname'=>$nickname2))

 * @param $subject string 邮件主题

 * @param $body string 邮件内容

 * @param $file string 附件

 * @return bool|string 发送成功返回true 反之返回报错信息

 * @throws Exception

 */

function send_mail_by_smtp($address, $subject, $body, $file = '')
{
    include "PHPMailer/Exception.php";
    include "PHPMailer/PHPMailer.php";
    include "PHPMailer/SMTP.php";
//  date_default_timezone_set("Asia/Shanghai");//设定时区东八区
 session_start();
//注意:$mail要用这种写法
 $mail = new PHPMailer\PHPMailer\PHPMailer();
//  $mail = new PHPMailer();
 //Server settings

 $mail->SMTPDebug = 2;

 $mail->isSMTP();     // 使用SMTP方式发送

 $mail->Host = 'smtpdm.aliyun.com';    // SMTP邮箱域名

 $mail->SMTPAuth = true;    // 启用SMTP验证功能

 $mail->Username = "lthero@email.lthero.cn";   // 邮箱用户名(完整email地址)

 $mail->Password = "";    // smtp授权码,非邮箱登录密码

 $mail->Port = 80;

 $mail->CharSet = "utf-8";    //设置字符集编码 "GB2312"

 // 设置发件人信息,显示为 你看我那里像好人(xxxx@126.com)

 $mail->setFrom($mail->Username, 'lthero');


 //设置收件人 参数1为收件人邮箱 参数2为该收件人设置的昵称 添加多个收件人 多次调用即可

 //$mail->addAddress('********@163.com', '你看我那里像好人');

 if (is_array($address)) {

 foreach ($address as $item) {

 if (is_array($item)) {

 $mail->addAddress($item['address'], $item['nickname']);

 } else {

 $mail->addAddress($item);

 }

 }

 } else {

 $mail->addAddress($address, 'adsf');

 }

 //设置回复人 参数1为回复人邮箱 参数2为该回复人设置的昵称

 //$mail->addReplyTo('*****@126.com', 'Information');

 if ($file !== '') $mail->AddAttachment($file); // 添加附件

 $mail->isHTML(true); //邮件正文是否为html编码 true或false

 $mail->Subject = $subject; //邮件主题

 $mail->Body = $body;  //邮件正文 若isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取的html文件

 //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; //附加信息,可以省略

 return $mail->Send() ? '发送成功' : '发送错误';

}

function get_pic_path(){
    $arr=scandir('./photos');
    unset($arr[0],$arr[1]);
    $temp=$arr[array_rand($arr)];
    echo $temp;
}

//如果请求带有指定参数,才进行发送邮件
if(isset($_POST['reciever'])){
    $ret = send_mail_by_smtp($_POST['reciever'], $_POST['title'], $_POST['content'], $path);
}

?>

[/loginshow]