I am trying to pre populate an email body using javascript. I cannot figure
out how to control the carraige returns for the text. The standard \r\n is
not working. Is there another technique I can try?
> I am trying to pre populate an email body using javascript.
Give up now and save yourself a lot of grief.
> I cannot figure out how to control the carraige returns for
> the text. The standard \r\n is not working.
Nope, that doesn't work.
> Is there another technique I can try?
Submit a form, let the server send the email

Signature
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
> I am trying to pre populate an email body using javascript. I cannot figure
> out how to control the carraige returns for the text. The standard \r\n is
> not working. Is there another technique I can try?
Randy is trying to say that this is very unreliable, as the user may
not have an email client configured, or it may not support all the
features of mailto.
For example, Lotus Notes will not accept a body of more than 200
characters, so whilst you may get away with this on a controlled
intranet, you should not use it on the web.
The following works with Lotus Notes based on the principle of escaping
the text (%0A is a return):
<a href='mailto:rob@myemail.com?SUBJECT=E-mail with broken
lines&body=Here%20is%20a%20line%20with%0Aa%20break'>Click
here to send...</a>
An alternative using \n and the escape function (you can use \r too if
that suits better):
<a href='' onclick="
this.href='mailto:rob@myemail.com?SUBJECT=E-mailform&body='
+ escape('This is\na broken\nline');
">Click here to send...</a>
As noted, only lightly tested and certainly not considered suitable for
the web for the stated reasons.
Cheers, Rob.
Fred Oz - 23 Nov 2004 02:02 GMT
[...]
> <a href='' onclick="
> this.href='mailto:rob@myemail.com?SUBJECT=E-mailform&body='
> + escape('This is\na broken\nline');
> ">Click here to send...</a>
You can make that marginally more reliable in case JavaScript isn't
working by putting a useful href that *may* work regardless of
whether JavaScript is enabled:
<a href='mailto:rob@myemail.com?SUBJECT=E-mailform&body=Hi'
onclick="
this.href='mailto:rob@myemail.com?SUBJECT=E-mailform&body='
+ escape('This is\na broken\nline');
">Click here to send...</a>
Using an onclick means you can get the content from a textarea or
similar too.
But it may still fail for the reasons Rob stated, and making it rely on
both JavaScript and mailto is kinda double jeopardy
Fred.
TJO - 24 Nov 2004 03:18 GMT
Who uses Lotus Notes anymore???
>> I am trying to pre populate an email body using javascript. I cannot
>> figure out how to control the carraige returns for the text. The
[quoted text clipped - 27 lines]
>
> Cheers, Rob.
Randy Webb - 24 Nov 2004 03:47 GMT
> Who uses Lotus Notes anymore???
People (corporations) who have bought it.
People who know how to read FAQ's.

Signature
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
Answer:It destroys the order of the conversation
Question: Why?
Answer: Top-Posting.
Question: Whats the most annoying thing on Usenet?
Dave - 31 Dec 2004 13:02 GMT
Rather than "/r/n", try "%0a" for the carraige returns in your message
body.
TJO wrote on 23 nov 2004 in comp.lang.javascript:
> I am trying to pre populate an email body using javascript.
Sure you can do that with serverside javascript.
But my guess is that you mean clientside in a browser.
Since the browsers in this world don't have a standard email client
connected, the only and very unreliable way is to use "mailto:' linking.
Advice: don't!

Signature
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress,
but let us keep the discussions in the newsgroup)
Well boys and girls. I used the following script and tag
combo and I have not seen it not work yet.
Here is the tag:
<script type="text/javascript" language="JavaScript"
src="mailtosupport.js"></script>
This is the content of the mailtosupport.js file:
<!-- Begin
sendto = "myemail@atbigcompany.com";
subject = "Support Request";
lf = escape('\r');
tab = escape('\t')
body = "Thank you for taking the time to notify us with an issue." + lf +
lf;
body += "If you have found an error in our system, please, to the best of
your ability answer the following questions." + lf + lf;
body += "Otherwise simply erase the following content and write you own.";
body += lf + lf + lf;
body += "1)" + tab + "Please describe the error, issue, or request:" + lf +
lf + lf;
body += "2)" + tab + "Please describe the time of day the issue occurred:" +
lf + tab + " The current Time is: " + Date() + lf + lf + lf;
body += "3)" + tab + "Please describe what you expected to occur:" + lf + lf
+ lf + lf;
document.write(
'<a href=\"mailto:'
+ sendto
+ '?subject='
+ subject
+ '&body='
+ body
+ '\">');
document.write('Email Support'+'</a>');
End -->
>I am trying to pre populate an email body using javascript. I cannot
>figure out how to control the carraige returns for the text. The standard
>\r\n is not working. Is there another technique I can try?
Hywel Jenkins - 23 Nov 2004 18:53 GMT
> >I am trying to pre populate an email body using javascript. I cannot
> >figure out how to control the carraige returns for the text. The standard
> >\r\n is not working. Is there another technique I can try?
> Well boys and girls. I used the following script and tag
> combo and I have not seen it not work yet.
Of course you haven't seen it fail, dummy. How many of your visitors
have, though, and have pushed off to another site that uses a reliable,
grown-up, way of handling form to email data?
Brilliant attitude - it works for me so it must work for everyone else.

Signature
Hywel
Michael Winter - 23 Nov 2004 21:46 GMT
[snip]
> Of course you haven't seen [the mailto: script] fail, dummy. How many
> of your visitors have, though, and have pushed off to another site that
> uses a reliable, grown-up, way of handling form to email data?
>
> Brilliant attitude - it works for me so it must work for everyone else.
I am always perplexed by that line of thinking.
"No-one's e-mailed me to tell me that my mail system doesn't work
for them."
Really? I wonder why.
Good grief...
Mike

Signature
Michael Winter
Replace ".invalid" with ".uk" to reply by e-mail.
TJO - 23 Nov 2004 22:22 GMT
Well Hywink,
I have tested in on other browsers and have not seen it not work on any. If
you can or others can tell me where it won't work then that is what I was
looking for.
Otherwise it appears to be valid solution.
>> >I am trying to pre populate an email body using javascript. I cannot
>> >figure out how to control the carraige returns for the text. The
[quoted text clipped - 9 lines]
>
> Brilliant attitude - it works for me so it must work for everyone else.
Hywel Jenkins - 23 Nov 2004 22:34 GMT
> >> >I am trying to pre populate an email body using javascript. I cannot
> >> >figure out how to control the carraige returns for the text. The
[quoted text clipped - 9 lines]
> >
> > Brilliant attitude - it works for me so it must work for everyone else.
> Well Hywink,
I always know I'm dealing with an intellectual tosser when that sort of
thing creeps up.
> I have tested in on other browsers and have not seen it not work on any.
Combinations?
> If
> you can or others can tell me where it won't work then that is what I was
> looking for.
You were looking for a malformed URL? Something that can cause the
email to be sent as expected; the email to be sent blank; the email not
to be sent; the email client to crash; the OS to crash; is there an
email client on the visitor's computer? Think, boy, think.
> Otherwise it appears to be valid solution.
It may appear to be whatever you want. A "valid solution", however, it
isn't.

Signature
Hywel
Grant Wagner - 23 Nov 2004 19:31 GMT
> Well boys and girls. I used the following script and tag
> combo and I have not seen it not work yet.
And you never will see it not work because you will never receive E-mail from
people on whose computers it does not work. This is a classic case of seeing the
result you expect. "It works for everyone who has sent me an E-mail!". Well,
yes, for those people who have sent you an E-mail, it did work.
> document.write(
> '<a href=\"mailto:'
[quoted text clipped - 6 lines]
> document.write('Email Support'+'</a>');
> End -->
That last line is just wrong. If you insist on using HTML comments, you should
comment them out in JavaScript so as not to cause a syntax error:
// End -->
However, HTML comments inside <script></script> tags can be removed entirely.
--
Grant Wagner <gwagner@agricoreunited.com>
comp.lang.javascript FAQ - http://jibbering.com/faq
Randy Webb - 24 Nov 2004 02:50 GMT
> Well boys and girls. I used the following script and tag
> combo and I have not seen it not work yet.
Only because you have failed to test it properly.
It fails for me for my IE6 and default email client.
It fails for me for my Mozilla and default email client.

Signature
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
TJO - 24 Nov 2004 03:15 GMT
What fails? What email client are you using??
Mine tested fine. Very curious.
>> Well boys and girls. I used the following script and tag
>> combo and I have not seen it not work yet.
[quoted text clipped - 3 lines]
> It fails for me for my IE6 and default email client.
> It fails for me for my Mozilla and default email client.
Randy Webb - 24 Nov 2004 03:25 GMT
> What fails?
The link fails. What else?
> What email client are you using??
My default/preferred email client when browsing the web is a web-based
Flash Form based email client through Comcast Cable.
Steps to compose mail:
Navigate to the comcast web site.
Navigate to the Email page.
Login via a Flash App that does not accept parameters (can't auto login).
Click Compose Mail.
Compose the Mail.
If you can create a link that does all that then you might have a
fool-proof script. Of course, its a simple matter of clicking "Submit"
to submit a form and send the email if its done the most reliable way -
a server side script.
> Mine tested fine.
So do popups onload for people that don't have them disabled.
> Very curious.
I am curious too. Can you define "top-posting" for me please? Its
explained in the group FAQ.
<--snip-->

Signature
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq
Answer:It destroys the order of the conversation
Question: Why?
Answer: Top-Posting.
Question: Whats the most annoying thing on Usenet?