Merhaba dostlar, mail oluşturma apisi baya sevilmiş.
Sözüm Söz İşte Kodlar :
HAYIRLI GÜNLER ...
(beğeni ve yorumlarınızı bekliyorum)
Sözüm Söz İşte Kodlar :
PHP:
<?php
function postRequest($url, $data, $headers = []) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, true);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
function getRequest($url, $headers = []) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
function getClientIP() {
return $_SERVER['REMOTE_ADDR'] ?? 'unknown';
}
function loadUserData() {
$file = 'mailtm_users.json';
if (!file_exists($file)) file_put_contents($file, '{}');
return json_decode(file_get_contents($file), true);
}
function saveUserData($data) {
file_put_contents('mailtm_users.json', json_encode($data, JSON_PRETTY_PRINT));
}
header('Content-Type: application/json');
if ($_GET['action'] == 'get-mail') {
$ip = getClientIP();
$today = date('Y-m-d');
$users = loadUserData();
if (!isset($users[$ip])) {
$users[$ip] = ['date' => $today, 'mails' => []];
}
if ($users[$ip]['date'] !== $today) {
$users[$ip]['date'] = $today;
$users[$ip]['mails'] = [];
}
if (count($users[$ip]['mails']) >= 2) {
echo json_encode([
'status' => 'limit',
'message' => 'Günlük limit doldu. Önceki mailleriniz aşağıda:',
'emails' => $users[$ip]['mails']
]);
exit;
}
$domain_data = getRequest("https://api.mail.tm/domains");
$domain = $domain_data['hydra:member'][0]['domain'];
$username = "user" . rand(10000, 99999);
$email = $username . "@" . $domain;
$password = "pass" . rand(10000, 99999);
$create = postRequest("https://api.mail.tm/accounts", [
"address" => $email,
"password" => $password
]);
// 🔧 Bekleme süresi: Hemen token istenirse bazen "Invalid credentials" döner
sleep(1);
$token_data = postRequest("https://api.mail.tm/token", [
"address" => $email,
"password" => $password
]);
if (isset($token_data['token'])) {
$users[$ip]['mails'][] = [
'email' => $email,
'password' => $password,
'token' => $token_data['token']
];
saveUserData($users);
echo json_encode([
'status' => 'success',
'email' => $email,
'password' => $password,
'token' => $token_data['token'],
'check_url' => $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?action=check-mail&token=" . $token_data['token']
]);
} else {
echo json_encode([
'status' => 'error',
'message' => 'Token alınamadı.',
'details' => $token_data
]);
}
}
elseif ($_GET['action'] == 'check-mail' && isset($_GET['token'])) {
$token = $_GET['token'];
$headers = ["Authorization: Bearer $token"];
$messages = getRequest("https://api.mail.tm/messages", $headers);
if (empty($messages['hydra:member'])) {
echo json_encode(["status" => "no_mail"]);
exit;
}
$message_id = $messages['hydra:member'][0]['id'];
$mail = getRequest("https://api.mail.tm/messages/$message_id", $headers);
preg_match('/\b\d{6}\b/', $mail['text'], $matches);
$code = $matches[0] ?? null;
echo json_encode([
"status" => "new_mail",
"from" => $mail['from']['address'],
"subject" => $mail['subject'],
"code" => $code,
"body" => $mail['text']
]);
}
else {
echo json_encode([
"status" => "error",
"message" => "Geçersiz istek veya eksik parametre."
]);
}
HAYIRLI GÜNLER ...
(beğeni ve yorumlarınızı bekliyorum)




