Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

krypton-byte/xtempmail

Repository files navigation

Unittest Upload to PyPi Downloads

Temporary Mail

Tempmail client for tempmail.plus

Installation

$ pip install git+https://github.com/krypton-byte/xtempmail

Feature

  • Custom Name/Mail
  • Reply/send Message(support attachment file)
  • Read Message (support Download attachment file)
  • Delete message
  • Destroy Inbox
  • Lock Inbox
  • Unlock Inbox
  • Generate Secret Inbox
  • Asynchronous
  • Synchronous

Example

example/main.py

Usage Sync

from xtempmail import Email, extension
import logging
from xtempmail.mail import EmailMessage, EMAIL
log = logging.getLogger('xtempmail')
log.setLevel(logging.INFO)
app = Email(name='krypton', ext=ext=EMAIL.MAILTO_PLUS))
@app.on.message()
def baca(data: EmailMessage):
 print(f"\tFrom: {data.from_mail}\n\tSubject: {data.subject}\n\tBody: {data.text}\n\tReply -> Delete")
 ok = []
 for i in data.attachments: # -> Forward attachment
 ok.append(( i.name, i.download()))
 if data.from_is_local:
 data.from_mail.send_message(data.subject, data.text, multiply_file=ok) # -> Forward message
 data.delete() #delete message
@app.on.message(lambda msg:msg.attachments)
def get_message_media(data: EmailMessage):
 print(f'Attachment: {[i.name for i in data.attachments]}')
@app.on.message(lambda x:x.from_mail.__str__().endswith('@gmail.com'))
def getGmailMessage(data: EmailMessage):
 print(f'Gmail: {data.from_mail}')
if __name__ == '__main__':
 try:
 app.listen_new_message(1)
 except KeyboardInterrupt:
 app.destroy() #destroy inbox

Usage Async

import asyncio
import logging
from xtempmail.aiomail import EMAIL, EmailMessage, Email
log = logging.getLogger('xtempmail')
log.setLevel(logging.INFO)
app = Email(name='krypton', ext=EMAIL.MAILTO_PLUS)
@app.on.message()
async def baca(data: EmailMessage):
 print(f"\tFrom: {data.from_mail}\n\tSubject: {data.subject}\n\tBody: {data.text}\n\tReply -> Delete")
 ok = []
 for i in data.attachments: # -> Forward attachmen
 ok.append(( i.name, await i.download()))
 if data.from_is_local:
 await data.from_mail.send_message(data.subject, data.text, multiply_file=ok) # -> Forward message
 await data.delete() #delete message
@app.on.message(lambda msg:msg.attachments)
async def get_message_media(data: EmailMessage):
 print(f'Attachment: {[i.name for i in data.attachments]}')
@app.on.message(lambda x:x.from_mail.__str__().endswith('@gmail.com'))
async def getGmailMessage(data: EmailMessage):
 print(f'Gmail: {data.from_mail}')
if __name__ == '__main__':
 try:
 loop = asyncio.new_event_loop()
 loop.run_until_complete(app.listen())
 except Exception:
 asyncio.run(app.destroy())

Demo

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /