MENU

每天自动给自己发一封邮件

July 10, 2018 • Read: 7255 • 教程

不知肿么回事 突然蹦出个想法 每天早晨自动给自己发一封邮件 邮件内容 有天气、日程计划、提醒内容...

天气源很简单 自己用 随便哪个天气API都可以 我用的心知天气 因为之前写软件时用过他家的天气 免费版:400次/小时,也就是9600次/天。

目前只有天气功能,下一步写个简单的后台,可以提醒日程 ,还有开学后 每天的课程,以及网站的一些数据

邮件

邮件发送使用smtp 省事

<meta charset="utf-8">
<?php

    include("class.phpmailer.php");
    include("class.smtp.php");
    //weather
    include("weather.php");
    //邮件模板
    $moban=file_get_contents("text.html");
    $moban=str_replace(day_data,$day_data,$moban);
    
    $mail = new PHPMailer();
    $mail->CharSet = 'UTF-8';
    $text  = $moban;
      
    //设置smtp参数
      
    $mail->IsSMTP(); 
    $mail->SMTPAuth   = true;                
    $mail->SMTPKeepAlive = true;    
    $mail->SMTPSecure = "ssl"; //是否ssl        
    $mail->Host       = "smtp.exmail.qq.com";  //我的是腾讯企业邮箱 自行更换
    $mail->Port       = 465; //发信端口
   
    //填写你的邮箱账号和密码 
    $mail->Username   = "nideyouxiangzhanghao";  //发信邮箱 
    $mail->Password   = "nidemima";//密码        

    //设置发送方,最好不要伪造地址 
    $mail->From       = "nideyouxiangzhanghao";//发信邮箱
    $mail->FromName   = "xingming";//发信人姓名
    $mail->Subject    = "「早安」新的一天美美哒";//发信标题
    $mail->AltBody    = $text;
    $mail->WordWrap   = 50; // set word wrap
    $mail->MsgHTML($text);
      
    //设置邮件接收方的邮箱和姓名
    $mail->AddAddress("bin@fooor.cn","主人");//收信人邮箱 和 姓名
    //使用HTML格式发送邮件 
    $mail->IsHTML(true); 
    //通过Send方法发送邮件
    //根据发送结果做相应处理
    if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message has been sent";
    }
?>

如果你懒得注册.....恩...就用我的key 吧 我是不会相信有人用的...

weather.php

<?php
header("Content-type: text/html; charset=utf-8"); //设置编码 utf-8 
function httpGet($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    // 终止从服务端进行验证
    // 如需设置为 TRUE,建议参考如下解决方案:
    // https://stackoverflow.com/questions/18971983/curl-requires-curlopt-ssl-verifypeer-false
    // https://stackoverflow.com/questions/6324391/php-curl-setoptch-curlopt-ssl-verifypeer-false-too-slow
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
}
// 心知天气接口调用凭据
$key = 'apqxetcden9h40gd'; // 请更换成您自己的 Key
$uid = 'U7B656DCFA'; // 请更换成您自己的用户 ID
// 参数
$api = 'https://api.seniverse.com/v3/weather/daily.json'; // 接口地址
$location = 'fuyang'; // 城市名称。除拼音外,还可以使用 v3 id、汉语等形式
$param = [
    'ts' => time(),
    'ttl' => 300,
    'uid' => $uid,
];
$sig_data = http_build_query($param); // http_build_query 会自动进行 url 编码
// 使用 HMAC-SHA1 方式,以 API 密钥(key)对上一步生成的参数字符串(raw)进行加密,然后 base64 编码
$sig = base64_encode(hash_hmac('sha1', $sig_data, $key, TRUE));
$param['sig'] = $sig; // 签名
$param['location'] = $location;
$param['start'] = 0; // 开始日期。0 = 今天天气
$param['days'] = 1; // 查询天数,1 = 只查一天
// 构造 url
$url = $api . '?' . http_build_query($param);

$day_weather =httpGet($url);
$data_weather= json_decode($day_weather,true);

//取 温度 地区等
$day_text=$data_weather['results']['0']['daily']['0']['text_day'];
$day_city=$data_weather['results']['0']['location']['name'];
$day_high=$data_weather['results']['0']['daily']['0']['high'];
$day_low=$data_weather['results']['0']['daily']['0']['low'];

$day_data=$day_text.'  '.$day_high.'° ~ '.$day_low.'° ';//拼接天气数据

任务需要监控来定时运行

监控

如果你也想弄个而且比较懒得话 那就凑合用吧

打包下载

Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

24 Comments
  1. 这玩意不粗,大佬!

  2. Kyoko Kyoko

    大佬能给test.html这个文件给我吗?小白不会弄,谢谢!|´・ω・)ノ

    1. Kyoko Kyoko

      @Kyoko抱歉,是text.html

  3. 感谢大佬分享,懒人手动点击包准备就绪,如果博主同意我想自己美化一点点嘿嘿嘿

  4. 这个可以扩展一下,做个好玩的东西,比如女朋友生日提醒,周年纪念日提醒,大姨妈提醒,然后再申请一个阿里云的免费短信就完美了@(笑眼)

    1. Bin Bin

      @Roogle不错不错 大姨妈提醒 哈哈

  5. @(呵呵) 试试怎么弄到WordPress网站上面

  6. 可能这就是大佬吧...

    1. Bin Bin

      @Serene大佬见笑了

  7. Ken Ken

    以后每天给自己发,快脱单吧。@(小乖)

    1. Bin Bin

      @Ken脱单是不可能的#(无奈)

    2. Ken Ken

      @Bin@(笑眼)有个小目标啦

    3. Bin Bin

      @Ken刚不久成为的贵兵犬 的我,怎么能这么快脱单呢@(滑稽)

  8. 会技术就是好啊,感觉邮件就像短信一样,就是收个验证码。

    1. Bin Bin

      @超燃之战#(高兴) 验证码 收费 邮件不收费 哈哈

  9. 日常提醒,赞!@(真棒)

  10. 我都没有看邮件的习惯小伙子@(小乖)

    1. Bin Bin

      @肖小帅微信直接推送邮件啊@(小乖)

  11. 想法很不错嘛!

  12. 创意不错,自己监督自己,不过我相信过一段时间你会把自己的邮箱放进黑名单的@(捂嘴笑)

    1. Bin Bin

      @小彦#(中枪) 我想应该不会

    2. @Bin那个定时任务的小工具是什么做的呀,我都只能自己写* * */10 *

    3. @小彦宝塔面板自带!

    4. Bin Bin

      @小彦哈哈 对的 宝塔面板自带