đź“§ Instagram mailto test

Open this page inside the Instagram in-app browser and tap each button. Note which ones open the mail composer (with subject & body filled in) and which ones do nothing. Same content, different syntax.

1. Bare address only

Simplest possible — no subject or body.

mailto:thomas.graziani@gmail.com Tap to test #1

2. Subject + body, %20 spaces

RFC-style: spaces as %20, params joined with &.

mailto:...?subject=Test%20Subject&body=Hello%2C%20this%20is%20a%20test. Tap to test #2

3. Subject + body, + spaces

Form-style: spaces as + signs.

mailto:...?subject=Test+Subject&body=Hello,+this+is+a+test. Tap to test #3

4. Subject + body, raw spaces

Literal spaces, no encoding at all.

mailto:...?subject=Test Subject&body=Hello, this is a test. Tap to test #4

5. Subject only

No body param.

mailto:...?subject=Test%20Subject Tap to test #5

6. With cc & bcc

Extra recipient params included.

mailto:...?cc=cc@example.com&bcc=bcc@example.com&subject=Test%20Subject&body=Hello%20there. Tap to test #6

7. JS: window.location.href

Triggered via JavaScript instead of an anchor.

window.location.href = "mailto:...?subject=...&body=..."

8. JS: window.open

Opens the mailto in a new context.

window.open("mailto:...", "_blank")

8b. JS: window.open (_self)

Opens the mailto in the current context instead of a new one.

window.open("mailto:...", "_self")

9. JS: synthetic anchor click

Creates an <a> element and clicks it programmatically.

a = document.createElement('a'); a.href='mailto:...'; a.click();

10. Anchor with target="_blank"

Standard link but forced into a new tab/context.

<a target="_blank" href="mailto:..."> Tap to test #10
Detecting browser…

11. Smart: detect Instagram

If the browser is Instagram, use a real anchor link (Instagram blocks JS-initiated mailto); otherwise use window.open(_self).

isIG = /Instagram/i.test(navigator.userAgent); isIG ? <a href="mailto:..."> : window.open("mailto:...", "_self")