简体   繁体   中英

How to fix not showing line break in body while using mailto?

My code:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%0D%0A%0D%0Aworld..">
   click here to mail me
</a>

Expected output:

在此处输入图像描述

What i am getting as output now:

在此处输入图像描述

I tried using %0D%0A but it doesn't work. Also i tried few java script methods from here But those don't seems to work.

The app i used to check mailto: output is default Gmail App from my android device.

EDIT [SOLUTION]

Just using <br> tag works fine with third party applications like gmail for android.

%0D%0A are the carry return and line feed characters, use %20 for space as you do in the subject:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%20world..">
   click here to mail me
</a>

And if you want a line break use %0D%0A as in:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%0D%0Aworld..">
   click here to mail me
</a>

You can check what this values mean in a ascii table if you check the hexadecimal value you see what A, D, E and 20 are equal to.

Just using <br> tag, works fine with third party applications like gmail for android.

Fixed code,

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello<br><br>world..">
   click here to mail me
</a>

Update 09 Sep 2020 This has been changed again in a recent Gmail release - eg version 2020.08.09.327326543.Release - \r\n for line breaks when using mailto: now works again and <br> does not.

I can only assume it was a regression bug rather than an intentional change in the Gmail app which has now been fixed.

Original answer:

I've seen an issue arise recently in my Android apps which have been using encoded \r\n for line breaks when using mailto: to open Gmail as the default email client. While this previously worked fine, now the line break is appearing as a space.

Upon doing some testing, it appears that the behaviour of the Gmail app has changed in a recent update.

I created a test page which contains two links, one using encoded \r\n and one using <br> for a line break in the body:

mailto:anything@any.com?body=Hello%0D%0Aworld
mailto:anything@any.com?body=Hello<br>world

In an Android Emulator running Android 10/API 29 with Gmail app version of 2019.05.12.250526289.release :

像素3-gmail

The \r\n link works correctly:

![pixel3-rn

But the <br> link does not:

![pixel3-br

In an Android Emulator running Android 11 Beta/API 30 with Gmail app version of 2020.04.29.309137422.release :

pixel3a-gmail

The <br> link works correctly:

像素3a-br

But the \r\n link does not:

像素3a-rn

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM