import sqlite3
from flask import Flask, render_template_string, request, jsonify
app = Flask(__name__)
DOMAIN_NAME = "tempgm2.abrdns.com"
# SQLITE DATABASE SETUP
def init_db():
conn = sqlite3.connect('tempmail.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS emails (
id INTEGER PRIMARY KEY AUTOINCREMENT,
temp_email TEXT,
sender TEXT,
subject TEXT,
body TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
)
''')
conn.commit()
conn.close()
init_db()
HTML_TEMPLATE = """
TempGM Mail
TempGM Generator
100% Free Custom Temporary Email Service
Loading saved email...
Inbox
Listening for new emails...
No emails received yet.
"""
@app.route('/')
def index():
return render_template_string(HTML_TEMPLATE, domain=DOMAIN_NAME)
# YEH ENDPOINT GMAIL SE DIRECT EMAILS RECEIVE KAREGA (WEBHOOK)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.json
if not data:
return jsonify({"status": "error"}), 400
to_email = data.get('to', '').lower()
from_email = data.get('from', 'Unknown')
subject = data.get('subject', 'No Subject')
body = data.get('body', '')
conn = sqlite3.connect('tempmail.db')
cursor = conn.cursor()
cursor.execute('''
INSERT INTO emails (temp_email, sender, subject, body)
VALUES (?, ?, ?, ?)
''', (to_email, from_email, subject, body))
conn.commit()
conn.close()
return jsonify({"status": "success"}), 200
@app.route('/get-inbox')
def get_inbox():
target_email = request.args.get('email', '').lower().strip()
if not target_email:
return jsonify({"mails": []})
conn = sqlite3.connect('tempmail.db')
cursor = conn.cursor()
# SQL LIKE operator se extract karega
cursor.execute('''
SELECT id, sender, subject, body, timestamp FROM emails
WHERE temp_email LIKE ? ORDER BY id DESC
''', (f'%{target_email}%',))
rows = cursor.fetchall()
conn.close()
messages = []
for r in rows:
messages.append({
"id": r[0],
"from": r[1],
"subject": r[2],
"body": r[3],
"time": r[4]
})
return jsonify({"mails": messages})
@app.route('/wipe-inbox', methods=['POST'])
def wipe_inbox():
target_email = request.args.get('email', '').lower().strip()
if target_email:
conn = sqlite3.connect('tempmail.db')
cursor = conn.cursor()
cursor.execute('DELETE FROM emails WHERE temp_email LIKE ?', (f'%{target_email}%',))
conn.commit()
conn.close()
return jsonify({"status": "success"})
return jsonify({"status": "error"}), 400
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)