Как открыть предпочтительное почтовое приложение пользователя в Linux?
Я написал простой родной скрипт GUI с python-gtk. Теперь я хочу дать пользователю кнопку для отправки электронного письма с вложением.
Скрипт работает на рабочих столах Linux. Есть ли способ открыть предпочитаемое почтовое приложение пользователя и прикрепить файл?
3 ответа
Командой linux для вызова будет xdg-email, часть пакета xdg-utils, который есть на большинстве рабочих столов linux (по крайней мере по умолчанию в arch, debian, ubuntu).
xdg-email - это "инструмент командной строки для отправки почты с использованием предпочитаемого пользователем редактора электронной почты".
при условии, что они правильно настроили свои приложения по умолчанию, он откроет их почтовый клиент по умолчанию. Вы можете передать ему аргументы для заполнения различных почтовых полей (to, cc, subject, body и т. Д.), А также имена файлов, которые нужно прикрепить.
Из вашего скрипта Python вы можете вызвать его с помощью os.system() или модуля подпроцесса.
Вы можете использовать webbrowser
модуль для открытия URL.
Вы также можете использовать протокол mailto, чтобы веб-браузер открыл почтовый клиент системы по умолчанию, если он доступен.
Вот простой пример:
import webbrowser
webbrowser.open("mailto:test@example.com?subject=Hello World")
Предостережение, нет поддержки вложений. Протокол mailto не предлагает поддержку вложений. Некоторые клиенты поддерживают (согласно Google) нестандартный атрибут attachment=PATH
, Но я не смог на самом деле подтвердить это.
Существуют способы для разных почтовых клиентов открывать окно составления электронной почты с вложением, но это отличается для каждого клиента. Также я не знаю ни одного стандартного способа определить, какая почтовая программа установлена по умолчанию.
Для получения дополнительной информации вы также можете проверить Википедию
Это как вы устанавливаете пользовательский агент
settings = webkit.WebSettings()
settings.set_property('user-agent', 'iPad')
webview.set_settings(settings)
и для прикрепления изображений, посмотрите на этот скрипт, чтобы получить представление
http://pygtk.org/pygtk2tutorial/examples/images.py
это не определенно, но я надеюсь, что это поможет.