版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34069180/article/details/53947011
最近读了PHP与mysql web开发这本书学习PHP,感觉受益匪浅,PHP是由C语言所编写的,所以C语言的语法在PHP中同样适用如printf与PHP的echo一样具有输出功能,(换行)。学习了PHP语言的正则表达式来抓取网页内容,又读到了php的mail函数时想用来发送邮件,但是mail函数只能在用户机中自己发送接收,查了一下资料发现有人开发出phpmailer来解决这个问题。
自己写的这个小脚本目的是正则表达式获取武汉市的实时pm2.5数据并进行小小的判断,结果发送到接收人的邮箱中,此处采用了126邮箱发送至本人qq邮箱作为测试。
<?php
$url='http://www.pm25.com/wuhan.html';
$lines_array=file($url);
$lines_string=implode('',$lines_array);
//echo htmlspecialchars($lines_string);
preg_match('/<a class=\"bi_aqiarea_num\" href=\"\/city\/wuhan\.html\">(.*?)<\/a>/',$lines_string,$result);//preg_match函数
echo '</br>';
$pm25=(int)$result[1];
printf("haha,%d\n",$pm25);
echo '</br>';
if($pm25 <100)
{
printf("today is a good day");
}
else {
echo "today ,you'd better stay in home <br />";
}
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
$mail->SMTPAuth = true; //开启认证
$mail->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "[email protected]";
$mail->Password = "邮箱密码";
//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could not execute: /var/qmail/bin/sendmail ”的错误提示
$mail->AddReplyTo("[email protected]","mckee");//回复地址
$mail->From = "[email protected]";
$mail->FromName = "yourlover";//发件人姓名
$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject = "zhang";//邮件标题
if ($pm25 <100)
{
$mail->Body = "<h1>phpmail</h1>(<font color=red>today is a good day</font>)the pm25 is.$pm25";
}
else
{
$mail->Body = "<h1>phpmail</h1>(<font color=red>today ,you'd better stay in home</font>)the pm25 is.$pm25";
}
//$mail->Body = "<h1>phpmail</h1>(<font color=red>www.phpddt.com</font>)对phpmailer的测试内容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
$mail->WordWrap = 80; // 设置每行字符串的长度
//$mail->AddAttachment("f:/test.png"); //可以添加附件
$mail->IsHTML(true);
$mail->Send();
echo '邮件已发送';
} catch (phpmailerException $e) {
echo "邮件发送失败:".$e->errorMessage();
}
?>