来源:CSDN

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

[loginshow]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?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]