Mailto is opening up options - html

When I insert my into my website and I submit the form Windows 8 pops up a little menu and asks how I want to open this (mailto)
This is my code for the form
<FORM METHOD="POST" ACTION="mailto:myemail">
<div id="subscribe">
<input type="text" placeholder="Enter your email address...">
<input type="submit" value="Submit">
<div class="clear"></div>
</div>
The mailto is the part i'm having problems with. Any help would be great.

You have to specify a default program for your operating system to email from - this is not something that you can fix through HTML. Whoever is going to your webpage will see a different dialog box if they haven't already configured their default mailto options.
You will not be able to make it automatically send an email through HTML alone- you will have to use a server-side language such as PHP if this is what you intend to do.

Related

How to have a hidden form field appear with a form action of mailto?

I'm trying to make a form for a web design class. The form action HAS to be a mailto. The form also needs a hidden field that pops up after I hit the submit button. Everything looks nice so far, but after I upload my file to the school server, nothing happens after I click the submit button. I'm not to sure what's causing the problem. Here's my code:
<form action="mailto:email#example.com" method="GET" enctype="text/plain">
<fieldset>
<legend><strong>Vote Your Favorite Month(s)!</strong></legend> <br/>
<input type="checkbox" name="votemonth" value="Jan"> January |
<input type="checkbox" name="votemonth" value="Feb"> February |
<input type="checkbox" name="votemonth" value="Mar"> March <br/><br/>
<input type="hidden" name="success-link" value="thankyou.html">
<p><input type="submit" value="Submit"> <input type="reset" value="Restart"></p>
</fieldset>
</form>
I have the thankyou.html file in the same location of this file. I've tried changing up email addresses, using POST, taking out the enctype, changing the location of the hidden input type, but none of that changed anything.
Hidden fields work just like any other field.
The basic problem is that mailto: as a form action does not work well enough to use on the WWW. It only works if the visitor has an unlikely combination of compatible browser and default email client.
If you have that combination of software, then the data in the field will be included in the generated email.
Submitting a mailto: form will not cause the browser to load a new HTML document.

I can't get my submit button to send an email, Ive tried several formats

I am using a form id= contact-form with a form loader. I have tried getting my email to submit with form action and html href however nothing has working this is what I am currently trying to get to work. any suggestions?
<form method="post" action="mailto:m_galvin1005#email.campbell.edu" >
<input type="submit" value="Send Email" />
</form>
I placed this form method inside of a form id. Not sure if thats where I am getting held up at
Unfortunately, browsers don't actually know how to send emails. The web browser only really knows how to render HTML, JS and CSS code into a visual experience.
PHP is a language that runs server-side, which you can use to tell a web server to send an email to whatever address you input.
Here's a good article on PHP Emailing: https://css-tricks.com/snippets/php/send-email/
It is important to note that this code REQUIRES a web-space or server to compile.
It will be a very basic email form, having said this I think you are missingpost argument in your form tag. The following should work
<form action="mailto:m_galvin1005#email.campbell.edu" method="post" enctype="text/plain" >
Name:<input type="text" name="Name">
Email:<input type="text" name="Email">
<input type="submit" name="submit" value="Submit">
</form>

Html Form to send email. How to delete '+' character for 'space'

I am using the following workaround to let a user send a mail to my client:
<form action="mailto:mail#domain.tld" method="get" enctype="text/plain">
<input name="subject" type="hidden" value="Request to offer #5" />
<input type="submit" value="Email me" />
</form>
But on Ubuntu 14.04 (my workspace) it opens Thunderbird and the subject is 'Request+to+offer+#5'. I tried different enctypes (none and multipart/form-data) and methods(post and get) and pre-encoding the subject with '+' and '%20'. But with the post-method Thunderbird puts the post-string 'subject=Request+to+offer+#5' in the body and the other ways leave the subject as I put it into my form or even empty.
How do I fix this?
Requirements:
Button that looks on every system as the system's button.
Predefined subject
Works with every email client
That you get the plusses is a bug (bug 1055950).
To make it work you can, however, create a button like
<button onclick="window.location='mailto:mail#domain.tld?subject=request%20to%20offer'">Email me</button>

Hotmail and Outlook issues with radio buttons

Recently I implemented a system where customers could give feedback about customer service in an email. The email sent to them included two radio buttons, a comment text entry box, and a submit button. The solution was tested in Gmail and worked perfectly, however we have been getting reports that there are issues with Hotmail, Outlook, and for all we know others too.
After testing in Hotmail we found the radio buttons could not be selected, and the submit button did not do anything, whereas in Outlook the entire thing displayed as text.
The email is sent from the Salesforce platform and the HTML is as follows:
<p>Hi {!recipient.name},</p>
<p>An issue you raised with us has been marked for closure. We would
appreciate if you could take a few seconds to just let us know whether
you were satisfied with the resolution.</p>
<p>Your case is number: {!relatedTo.CaseNumber}. The subject for your case is: {!relatedTo.Subject}.</p>
<form method="post" action="www.oursite.com/feedback.php" onsubmit="Disable()">
<input type="radio" name="yesno" value="This issue was resolved." checked="true">This issue was resolved.</input><br></br>
<input type="radio" name="yesno" value="This issue was not resolved">This issue was not resolved.</input>
<p>Anything else we should know? <input type="text" name="comments"></input></p>
<input type="hidden" name="cust" value="{!recipient.name}"></input>
<input type="hidden" name="caseendid" value="{!relatedTo.CaseNumber}"></input>
<input type="hidden" name="caselink" value="https://eu1.salesforce.com/{!relatedTo.Id}"></input>
<input type="submit" name="submit" value="Submit"></input>
</form>
<script>
function Disable()
{
var button;
button = document.getElementByName('submit');
button.enabled = false;
}
</script>
Anything enclosed in {!some.value} is replaced by text by salesforce before being sent.
Can anyone shed any light on why we're having issues in Hotmail or Outlook as there doesn't really seem to be much on MSDN or here already regarding this?
<form>s and HTML formatted email mix very, very poorly.
Send people a feedback link instead and use an identifying token in it to pre-populate (with any identifying data you like) a form in a regular web page hosted on a regular http(s) website.
(You can give them a plain form and a link without an identifying token if you don't have any data you want to pre-populate it with).

html button to send email

How do I send an email with specified initial values for the headers subject and message from a button in html, such as this
<form method="post" action="mailto:email.com?subject=subject&message=message">
where subject and message are values fetched from a form?
You can use mailto, here is the HTML code:
<a href="mailto:EMAILADDRESS">
Replace EMAILADDRESS with your email.
This method doesn't seem to work in my browser, and looking around indicates that the whole subject of specifying headers to a mailto link/action is sparsely supported, but maybe this can help...
HTML:
<form id="fr1">
<input type="text" id="tb1" />
<input type="text" id="tb2" />
<input type="button" id="bt1" value="click" />
</form>
JavaScript (with jQuery):
$(document).ready(function() {
$('#bt1').click(function() {
$('#fr1').attr('action',
'mailto:test#test.com?subject=' +
$('#tb1').val() + '&body=' + $('#tb2').val());
$('#fr1').submit();
});
});
Notice what I'm doing here. The form itself has no action associated with it. And the submit button isn't really a submit type, it's just a button type. Using JavaScript, I'm binding to that button's click event, setting the form's action attribute, and then submitting the form.
It's working in so much as it submits the form to a mailto action (my default mail program pops up and opens a new message to the specified address), but for me (Safari, Mail.app) it's not actually specifying the Subject or Body in the resulting message.
HTML isn't really a very good medium for doing this, as I'm sure others are pointing out while I type this. It's possible that this may work in some browsers and/or some mail clients. However, it's really not even a safe assumption anymore that users will have a fat mail client these days. I can't remember the last time I opened mine. HTML's mailto is a bit of legacy functionality and, these days, it's really just as well that you perform the mail action on the server-side if possible.
As David notes, his suggestion does not actually fulfill the OP's request, which was an email with subject and message. It doesn't work because most, maybe all, combinations of browsers plus e-mail clients do not accept the subject and body attributes of the mailto: URI when supplied as a <form>'s action.
But here's a working example:
HTML (with Bootstrap styles):
<p><input id="subject" type="text" placeholder="type your subject here"
class="form-control"></p>
<p><input id="message" type="text" placeholder="type your message here"
class="form-control"></p>
<p><a id="mail-link" class="btn btn-primary">Create email</a></p>
JavaScript (with jQuery):
<script type="text/javascript">
function loadEvents() {
var mailString;
function updateMailString() {
mailString = '?subject=' + encodeURIComponent($('#subject').val())
+ '&body=' + encodeURIComponent($('#message').val());
$('#mail-link').attr('href', 'mailto:person#email.com' + mailString);
}
$( "#subject" ).focusout(function() { updateMailString(); });
$( "#message" ).focusout(function() { updateMailString(); });
updateMailString();
}
</script>
Notes:
The <form> element with associated action attribute is not used.
The <input> element of type button is also not used.
<a> styled as a button (here using Bootstrap) replaces <input type="button">
focusout() with updateMailString() is necessary because the <a> tag's href attribute does not automatically update when the input fields' values change.
updateMailString() is also called when document is loaded in case the input fields are prepopulated.
Also encodeURIComponent() is used to get characters such as the quotation mark (") across to Outlook.
In this approach, the mailto: URI is supplied (with subject and body attributes) in an a element's href tag. This works in all combinations of browsers and e-mail clients I have tested, which are recent (2015) versions of:
Browsers: Firefox/Win&OSX, Chrome/Win&OSX, IE/Win, Safari/OSX&iOS, Opera/OSX
E-mail clients: Outlook/Win, Mail.app/OSX&iOS, Sparrow/OSX
Bonus tip: In my use cases, I add some contextual text to the e-mail body. More often than not, I want that text to contain line breaks. %0D%0A (carriage return and linefeed) works in my tests.
I couldn't ever find an answer that really satisfied the original question, so I put together a simple free service (PostMail) that allows you to make a standard HTTP POST request to send an email. When you sign up, it provides you with code that you can copy & paste into your website. In this case, you can simply use a form post:
HTML:
<form action="https://postmail.invotes.com/send"
method="post" id="email_form">
<input type="text" name="subject" placeholder="Subject" />
<textarea name="text" placeholder="Message"></textarea>
<!-- replace value with your access token -->
<input type="hidden" name="access_token" value="{your access token}" />
<input type="hidden" name="success_url"
value=".?message=Email+Successfully+Sent%21&isError=0" />
<input type="hidden" name="error_url"
value=".?message=Email+could+not+be+sent.&isError=1" />
<input id="submit_form" type="submit" value="Send" />
</form>
Again, in full disclosure, I created this service because I could not find a suitable answer.
You can not directly send an email with a HTML form. You can however send the form to your web server and then generate the email with a server side program written in e.g. PHP.
The other solution is to create a link as you did with the "mailto:". This will open the local email program from the user. And he/she can then send the pre-populated email.
When you decided how you wanted to do it you can ask another (more specific) question on this site. (Or you can search for a solution somewhere on the internet.)
#user544079
Even though it is very old and irrelevant now, I am replying to help people like me!
it should be like this:
<form method="post" action="mailto:$emailID?subject=$MySubject &message= $MyMessageText">
Here
$emailID,
$MySubject,
$MyMessageText are variables which you assign from a FORM or a DATABASE Table or just you can assign values in your code itself. Alternatively you can put the code like this (normally it is not used):
<form method="post" action="mailto:admin#website.com?subject=New Registration Alert &message= New Registration requires your approval">
You can use an anchor to attempt to open the user's default mail client, prepopulated, with mailto:, but you cannot send the actual email. *Apparently it is possible to do this with a form action as well, but browser support is varied and unreliable, so I do not suggest it.
HTML cannot send mail, you need to use a server side language like php, which is another topic. There are plently of good resources on how to do this here on SO or elsewhere on the internet.
If you are using php, I see SwiftMailer suggested quite a bit.
<form action="mailto:someone#example.com" method="post" enctype="text/plain">
Name:<br>
<input type="text" name="name"><br>
E-mail:<br>
<input type="text" name="mail"><br>
Comment:<br>
<input type="text" name="comment" size="50"><br><br>
<input type="submit" value="Send">
<input type="reset" value="Reset">