2014-12-01 11 views
5

Ho scritto un semplice script GUI nativo con python-gtk. Ora voglio dare all'utente un pulsante per inviare un'e-mail con un allegato.Come aprire l'applicazione di posta preferita dell'utente su Linux?

Lo script viene eseguito su desktop Linux. C'è un modo per aprire l'applicazione di posta preferita dell'utente e allegare un file?

+0

correlati: http://stackoverflow.com/questions/27836576/adding-several-attachments-to-thunderbird -from-command-line – guettli

risposta

3

Il comando linux per chiamare sarebbe xdg-email, parte del pacchetto xdg-utils, che si trova sulla maggior parte dei desktop Linux (almeno di default su arco, debian, ubuntu).

xdg-email è uno "strumento da riga di comando per l'invio di posta utilizzando il compositore di posta elettronica preferito dell'utente".

a condizione che abbiano impostato correttamente le loro applicazioni predefinite, aprirà il loro client di posta predefinito. È possibile passare argomenti per riempire vari campi di posta (a, cc, oggetto, corpo ecc.), Nonché nomi di file dei file da allegare.

dal vostro script python che si potrebbe chiamare usando os.system() oppure il modulo sottoprocesso ..

+0

Grazie! È disponibile anche su openSUSE 11.4. – guettli

+0

L'aggiunta di allegati non funziona con xdg-email se il client è thunderbird. Molto triste. Immagino che la maggior parte degli utenti usi thunderbird. Benvenuti nel plumbing desktop di Linux: https://bugs.launchpad.net/ubuntu/+source/simple-scan/+bug/515386 – guettli

+0

Fino a quando non esiste il precedente bug in xdg-email, lo uso per thunderbird: http: // kb.mozillazine.org/Command_line_arguments_%28Thunderbird%29 – guettli

-2

questo è il modo di impostare user agent

settings = webkit.WebSettings() 
    settings.set_property('user-agent', 'iPad') 
    webview.set_settings(settings) 

e per fissare le immagini, un'occhiata a questo script per avere un'idea

http://pygtk.org/pygtk2tutorial/examples/images.py

questo non è definito, ma spero aiuta.

+0

Non capisco la tua risposta. Sembra che tu abbia modificato l'agente utente HTTP. Voglio aprire l'agente utente di posta nativo: Thunderbird, evoluzione ... – guettli

+0

La domanda riguarda l'apertura del client di posta di un utente, non l'impostazione dell'agente utente di un client http. Questa risposta non è pertinente. – davidism

3

È possibile utilizzare il modulo webbrowser per aprire un URL.
È anche possibile utilizzare il protocollo mailto per consentire al browser di aprire il client di posta predefinito del sistema, se disponibile.

Ecco un semplice esempio:

import webbrowser 
webbrowser.open("mailto:[email protected]?subject=Hello World") 

Caveat, alcun supporto per gli allegati. Il protocollo mailto non offre supporto per gli allegati. Alcuni client supportano (secondo google) l'attributo non standard attachment=PATH. Ma non sono stato in grado di confermarlo.

Ci sono modi per vari client di posta elettronica di aprire una finestra di composizione e-mail con un allegato, ma questo differisce tra ogni cliente. Inoltre non conosco alcun modo standard per determinare quale programma di posta è impostato come predefinito.

Per ulteriori informazioni si può anche controllare wikipedia

+0

Forse l'istanza del browser Web potrebbe essere creata in qualche modo con un array associativo, contenente i file allegati? Congratulazioni al primo badge steward del triage! :-) – peterh

+0

Il protocollo mailto non ha il supporto ufficiale per i file allegati, quindi è improbabile che passare una matrice di qualsiasi tipo possa fare la differenza. (e io ero il secondo) – EWit

+0

Quindi la posta (con i suoi allegati) potrebbe essere creata con qualche terza chiamata api, forse. – peterh