Carriage Return Email Body

T

TJO

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?
 
R

Randy Webb

TJO said:
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
 
R

RobG

TJO said:
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:[email protected]?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:[email protected]?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.
 
F

Fred Oz

RobG wrote:
[...]
<a href='' onclick="
this.href='mailto:[email protected]?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:[email protected]?SUBJECT=E-mailform&body=Hi'
onclick="
this.href='mailto:[email protected]?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.
 
E

Evertjan.

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!
 
T

TJO

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 = "(e-mail address removed)";
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 -->
 
H

Hywel Jenkins

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.
 
G

Grant Wagner

TJO said:
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:'
+ sendto
+ '?subject='
+ subject
+ '&body='
+ body
+ '\">');
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.
 
M

Michael Winter

On Tue, 23 Nov 2004 18:53:49 -0000, Hywel Jenkins

[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
 
T

TJO

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.
 
H

Hywel Jenkins

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.
 
R

Randy Webb

TJO said:
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.
 
T

TJO

Who uses Lotus Notes anymore???

RobG said:
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:[email protected]?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:[email protected]?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.
 
R

Randy Webb

TJO said:
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-->

--
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?
 
R

Randy Webb

TJO said:
Who uses Lotus Notes anymore???

People (corporations) who have bought it.
People who know how to read FAQ's.


--
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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top