 <p>From what I could dig, there seems to be two ways to open the compose window of the email app with the fields filled: </p> <h3>1. regular email link</h3> <p>You can pass subject, body, cc, bcc strings as query URL parameters on a mailto link, for example:</p> <pre><code>&lt;a href="mailto:mail@example.com?subject=foo&amp;body=bar&gt;email link&lt;/a&gt; </code></pre> <p>Using this method you won't be able to fill the attachment.</p> <p>To fill a file attachment, you would need to use the second way which is…</p> <h3>2. web activity "share"</h3> <p>The share web activity will ask for the user which of the apps that accepts the share activity she would like to chose for sharing the file, this activity is what the Gallery App uses to share pictures, if the email app is chosen, it will fill the compose message window according to the parameters you pass.</p> <p>If you look at the source code of the email app, you'll see that <a href="https://github.com/mozilla-b2g/gaia/blob/b585b32441fafa67f2b4582db23be5f3a2afab21/apps/email/js/mail-app.js#L287" rel="nofollow">on Firefox OS 1.1</a> (v1-train branch) the activity handler for the share activity accepts 2 parameters: data.blobs and data.filenames. Later versions (like <a href="https://github.com/mozilla-b2g/gaia/blob/v1.2/apps/email/js/app_messages.js#L53" rel="nofollow">Firefox OS 1.2</a>) also support an url parameter that can have the other fields subject, body, cc, bcc as part of the query string.</p>