Отправьте электронное письмо с приложением из приложения Kivy на Android, желательно, открыв почтовый клиент

Я попробовал несколько способов отправить электронное письмо с помощью Python в приложении Kivy на Android. Самое близкое, что я пришел, это использовать функцию электронной почты Plyer ( https://plyer.readthedocs.org/en/latest/#plyer.facades.Email ), однако она, похоже, не поддерживает вложения.

То, что я хочу, чтобы мое приложение было сделано, – это открыть почтовый клиент пользователя и заполнить поля получателя, темы, тела и вложения. Вложение будет генерировать .csv-файл моим приложением.

Кто-нибудь есть предложения о том, как это сделать? Как я могу изменить этот код, чтобы включить вложения?

from jnius import autoclass, cast from plyer.facades import Email from plyer.platforms.android import activity Intent = autoclass('android.content.Intent') AndroidString = autoclass('java.lang.String') class AndroidEmail(Email): def _send(self, **kwargs): intent = Intent(Intent.ACTION_SEND) intent.setType('text/plain') recipient = kwargs.get('recipient') subject = kwargs.get('subject') text = kwargs.get('text') create_chooser = kwargs.get('create_chooser') if recipient: intent.putExtra(Intent.EXTRA_EMAIL, [recipient]) if subject: android_subject = cast('java.lang.CharSequence', AndroidString(subject)) intent.putExtra(Intent.EXTRA_SUBJECT, android_subject) if text: android_text = cast('java.lang.CharSequence', AndroidString(text)) intent.putExtra(Intent.EXTRA_TEXT, android_text) if create_chooser: chooser_title = cast('java.lang.CharSequence', AndroidString('Send message with:')) activity.startActivity(Intent.createChooser(intent, chooser_title)) else: activity.startActivity(intent) def instance(): return AndroidEmail() 

Более старый модуль Android поддерживает передачу имени файла. Вы можете использовать это напрямую или добавить функцию в plyer, вызвав соответствующие части android api. Однако я не знаю, как вы это делаете.