Hello! It's a great pleasure to have you visit my blog.
It's truly a fateful encounter. If you are interested in Chinese goods, we can collaborate.
I can provide you with affordable Chinese products that you can sell in your country, thereby boosting our economic income.


If you are willing to cooperate, I hope to hear from you to discuss the opportunity for collaboration.
Here is my Email: t@29ym.com
Looking forward to connecting with you and embarking on this partnership together!

PHP检测网址Url是否能正常打开,PHP检测页面状态码并发送邮件

最近服务器经常宕机,很多项目在服务器上,但又不能及时预警,严重影响正常使用。
写了个小脚本用来检测指定页面是否可以打开,并且发送邮件提醒
只要功能
1、设置指定网址,每隔多久可以检测一次设置的Url是否返回状态码200或者301,如果是的不执行任何操作,如果返回非200或者301,就会发送到指定邮箱,及时通知到自己手里,以应对处理。
用到了PHPMailer这个库,需要自己下载到本地,下载地址:https://github.com/PHPMailer/PHPMailer/
定时任务用到的宝塔环境的计划任务,然后选择访问url任务,把写好的代码地址输入进去,配置好间隔时间即可

代码如下
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true); // Passing true enables exceptions
try {

//服务器配置
$mail->CharSet ="UTF-8";                     //设定邮件编码
$mail->SMTPDebug = 0;                        // 调试模式输出
$mail->isSMTP();                             // 使用SMTP
$mail->Host = 'smtp.qq.com';                // SMTP服务器
$mail->SMTPAuth = true;                      // 允许 SMTP 认证
$mail->Username = '*';                // SMTP 用户名  即邮箱的用户名
$mail->Password = '*';             // SMTP 密码  部分邮箱是授权码(例如163邮箱)
$mail->SMTPSecure = 'ssl';                    // 允许 TLS 或者ssl协议
$mail->Port = 465;                            // 服务器端口 25 或者465 具体要看邮箱服务器支持

$mail->setFrom('*', 'Mailer');  //发件人
$mail->addAddress('*', 'Joe');  // 收件人
//$mail->addAddress('*');  // 可添加多个收件人
$mail->addReplyTo('*', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
//$mail->addCC('cc@example.com');                    //抄送
//$mail->addBCC('bcc@example.com');                    //密送

//发送附件
// $mail->addAttachment('../xy.zip');         // 添加附件
// $mail->addAttachment('../thumb-1.jpg', 'new.jpg');    // 发送附件并且重命名

//Content
$mail->isHTML(true);                                  // 是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
$mail->Subject = '异常异常';
$mail->Body    = '<h1>异常提醒</h1>' . date('Y-m-d H:i:s');
$mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';

} catch (Exception $e) {

echo '邮件发送失败: ', $mail->ErrorInfo;

}

$url ='http://baidu.com';

function get_http_code($url) {

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url); //设置URL
    curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header
    curl_setopt($curl, CURLOPT_NOBODY, true); //Body就不要了吧,我们只是需要Head
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了
    $data = curl_exec($curl); //开始执行啦~
    $return = curl_getinfo($curl, CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~  

    curl_close($curl); //用完记得关掉他  

    return $return;
}

$codea = get_http_code($url);
echo get_http_code($url);
if($codea == '301' || $codea =='200'){

echo('页面正常');

}else {

$mail->send();
echo '邮件发送成功';

// echo('页面访问异常');
}

?>

发表新评论