2022-09-16 10:07:57 -06:00
|
|
|
'''
|
|
|
|
Module of Linux API for plyer.email.
|
|
|
|
'''
|
|
|
|
|
|
|
|
import subprocess
|
|
|
|
try:
|
|
|
|
from urllib.parse import quote
|
|
|
|
except ImportError:
|
|
|
|
from urllib import quote
|
2024-06-02 10:31:58 -06:00
|
|
|
from sbapp.plyer.facades import Email
|
|
|
|
from sbapp.plyer.utils import whereis_exe
|
2022-09-16 10:07:57 -06:00
|
|
|
|
|
|
|
|
|
|
|
class LinuxEmail(Email):
|
|
|
|
'''
|
|
|
|
Implementation of Linux email API.
|
|
|
|
'''
|
|
|
|
|
|
|
|
def _send(self, **kwargs):
|
|
|
|
recipient = kwargs.get('recipient')
|
|
|
|
subject = kwargs.get('subject')
|
|
|
|
text = kwargs.get('text')
|
|
|
|
|
|
|
|
uri = "mailto:"
|
|
|
|
if recipient:
|
|
|
|
uri += str(recipient)
|
|
|
|
if subject:
|
|
|
|
uri += "?" if "?" not in uri else "&"
|
|
|
|
uri += "subject="
|
|
|
|
uri += quote(str(subject))
|
|
|
|
if text:
|
|
|
|
uri += "?" if "?" not in uri else "&"
|
|
|
|
uri += "body="
|
|
|
|
uri += quote(str(text))
|
|
|
|
|
|
|
|
subprocess.Popen(["xdg-open", uri])
|
|
|
|
|
|
|
|
|
|
|
|
def instance():
|
|
|
|
'''
|
|
|
|
Instance for facade proxy.
|
|
|
|
'''
|
|
|
|
import sys
|
|
|
|
if whereis_exe('xdg-open'):
|
|
|
|
return LinuxEmail()
|
|
|
|
sys.stderr.write("xdg-open not found.")
|
|
|
|
return Email()
|