<?php
//临时邮箱:https://mail.td/
function gettoken($email){
// 初始化 cURL
$ch = curl_init();
// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, "https://mail.td/zh/mail/".$email); // 设置请求的 URL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将响应保存到变量而不是输出
curl_setopt($ch, CURLOPT_HEADER, true); // 包含头部信息
// 执行 cURL 请求
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
// 获取响应头部信息的长度
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
// 分离头部信息和响应体
$header = substr($response, 0, $header_size);
// 将头部信息转换为关联数组
$headerArray = [];
// 解析头部信息为数组
$headers = explode("\r\n", $header);
foreach ($headers as $headerLine) {
$pos = strpos($headerLine, ':');
if ($pos !== false) {
$key = substr($headerLine, 0, $pos);
$value = trim(substr($headerLine, $pos + 1));
$headerArray[$key] = $value;
}
}
$string = $headerArray['set-cookie'];
// 使用正则表达式匹配目标字符串
$pattern = '/auth_token=([^;]+)/';
if (preg_match($pattern, $string, $matches)) {
$extractedString = $matches[1];
return $extractedString;
}
// 关闭 cURL 资源
curl_close($ch);
}
// 第一个方法:获取随机邮箱并发送请求
function getRandomEmail() {
// 生成随机的邮箱地址,这里使用一个简单的示例
$randomEmail = uniqid() . '@nqmo.com'; // 这里可以改为生成真实的随机邮箱
// 构建请求的 URL
$url = 'https://mail.td/_next/data/Vo6ilNCStMVNBJtfMWiXR/zh/mail/' . urlencode($randomEmail) . '.json?name=' . urlencode($randomEmail);
// 初始化 curl
$ch = curl_init();
// 设置 curl 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 执行请求并获取返回结果
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
$error_message = curl_error($ch);
echo "Error: $error_message";
}
// 关闭 curl 资源
curl_close($ch);
$res = json_decode($response);
if(isset($res->__N_SSP)){
$arr = array(
"code"=>0,
"msg"=>"随机邮箱获取成功",
"email"=>$randomEmail,
);
return $arr;
}else{
$arr = array(
"code"=>1,
"msg"=>"随机邮箱获取失败",
"email"=>$res->__N_SSP,
);
return $arr;
}
}
// 第二个方法:接收邮箱参数并发送请求
function sendGetRequest($email) {
// 构建请求的 URL
$url = 'https://mail.td/api/api/v1/mailbox/' . urlencode($email);
// 初始化 curl
$ch = curl_init();
// 设置 curl 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: bearer '.gettoken($email)
));
// 执行请求并获取返回结果
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
$error_message = curl_error($ch);
echo "Error: $error_message";
}
// 关闭 curl 资源
curl_close($ch);
$arr = array(
"email"=>$email,
"content"=>json_decode($response),
);
return $arr;
}
//根据id获取邮箱内容
function getEmailContent($email,$id){
// 构建请求的 URL
$url = 'https://mail.td/api/api/v1/mailbox/' . urlencode($email)."/".$id;
// 初始化 curl
$ch = curl_init();
// 设置 curl 选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: bearer '.gettoken($email)
));
// 执行请求并获取返回结果
$response = curl_exec($ch);
// 检查是否有错误发生
if(curl_errno($ch)) {
$error_message = curl_error($ch);
echo "Error: $error_message";
}
// 关闭 curl 资源
curl_close($ch);
$arr = array(
"id"=>$id,
"email"=>$email,
"content"=>json_decode($response),
);
return $arr;
}
//$res = gettoken();
// $res = getEmailContent("liuqing@nqmo.com","20240712T051842-6261");
// echo json_encode($res);
if(isset($_GET["act"])){
$act = $_GET["act"];
if($act=='getRandomEmail'){
$res = getRandomEmail();
}else if($act=='getEmailMsg'&&isset($_GET["email"])){
$res = sendGetRequest($_GET["email"]);
}else if($act=='getEmailContent'&&isset($_GET["email"])&&isset($_GET["id"])){
$res = getEmailContent($_GET["email"],$_GET["id"]);
}else{
$res = array(
"code"=>1,
"msg"=>"参数错误",
);
}
echo json_encode($res);
}else{
$res = array(
"code"=>1,
"msg"=>"参数错误",
);
echo json_encode($res);
}
?> 以上代码转成delphi XE7 可以使用的版本,然后对应可用的 ssleay32.dll