1 Star 0 Fork 0

四少爷 / Webhook.SendMail

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
sendmail.php 2.88 KB
一键复制 编辑 原始数据 按行查看 历史
四少爷 提交于 2017-03-02 02:06 . 增加时区设置功能
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set('PRC');//设置时区
$secret = ''; #在GitHub上填写的secret
//获取http 头
$headers = array();
//Apache服务器才支持getallheaders函数
if (!function_exists('getallheaders')) {
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
} else {
$headers = getallheaders();
}
//github发送过来的签名
$hubSignature = $headers['X-Hub-Signature'];
list($algo, $hash) = explode('=', $hubSignature, 2);
// 获取body内容
$payload = file_get_contents('php://input');
// 计算签名
$payloadHash = hash_hmac($algo, $payload, $secret);
if ($payloadHash != $hash) {
exit();
}
$hook = $_POST['payload'];
$obj = json_decode($hook);
$user_name = $obj->{'commits'}[0]->{'committer'}->{'name'};
$repository_name = $obj->{'repository'}->{'name'};
$time = $obj->{'commits'}[0]->{'timestamp'};
$commits_id = $obj->{'commits'}[0]->{'id'};
$commits_url = $obj->{'commits'}[0]->{'url'};
$commits_message = $obj->{'commits'}[0]->{'message'};
require_once "email.class.php";
//******************** 配置信息 ********************************
$smtpserver = ""; //SMTP服务器
$smtpserverport = 25; //SMTP服务器端口
$smtpusermail = ""; //SMTP服务器的用户邮箱
$smtpemailto = ""; //发送给谁
$smtpuser = ""; //SMTP服务器的用户帐号
$smtppass = ""; //SMTP服务器的用户密码
$mailtitle = "【" . $user_name . "】" . "push项目" . "【" . $repository_name . "】"; //邮件主题
$mailcontent = "详细内容:<br/>"; //邮件内容
$mailcontent = $mailcontent . "============================================================<br/>";
$mailcontent = $mailcontent . "【" . $user_name . "】于" . $time . "提交 [" . $commits_id . "] 版本<br/>";
$mailcontent = $mailcontent . "URL: " . $commits_url . "<br/>";
$mailcontent = $mailcontent . "提交内容: " . $commits_message . "<br/>";
$mailcontent = $mailcontent . "============================================================<br/>";
$mailcontent = $mailcontent . "为保证项目正常运行,请各位开发与测试人员及时pull该项目最新代码!";
$mailtype = "HTML"; //邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass); //这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = false; //是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
?>
</body>
1
https://gitee.com/jermey/Webhook.SendMail.git
git@gitee.com:jermey/Webhook.SendMail.git
jermey
Webhook.SendMail
Webhook.SendMail
master

搜索帮助