Sending emails automatically at the click of a button
Something like this would work as a starting point:
<form action="" method="post">
<input type="submit" value="Send details to embassy" />
<input type="hidden" name="button_pressed" value="1" />
</form>
<?php
if(isset($_POST['button_pressed']))
{
$to = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
echo 'Email Sent.';
}
?>
UPDATE
This can be used as a Javascript function to call the mail.php page and send the email without reloading the page.
function sendemail()
{
var url = '/mail.php';
new Ajax.Request(url,{
onComplete:function(transport)
{
var feedback = transport.responseText.evalJSON();
if(feedback.result==0)
alert('There was a problem sending the email, please try again.');
}
});
}
You'll need Prototype for this method: http://www.prototypejs.org/api/ajax/request
I haven't tested this, but hopefully it should be along the right lines.
Daniel H
Updated on November 26, 2020Comments
-
Daniel H over 3 years
I am designing an Emergency Response page, and one of the features we need is to be able to click a button (e.g. 'Send details to embassy'), and then send an automatically-generated email to the intended recipient (
$email_address
) without having to go into Microsoft Outlook and click send. Is there a way to do this?The only method I know is the
<a href='mailto:[email protected]'>
one, but this opens the email in Outlook and really I need it to be completely automated. -
Daniel H about 13 yearsThanks Rhapsody, this works well. The problem I have now is that when I use this method inside a mail.php file, and I submit the form then the page redirects. I need the page that I am sending the email from to be completely untouched because it has important stopwatches on it and these will be reset if redirected.
-
gmadd about 13 yearsIt's probably worth looking at making an Ajax call to the mail.php script, this would stop the page loading, but run the script.
-
Daniel H about 13 yearsHi gmadd, would you be able to post an example of this please? I haven't had a chance to look into AJAX in much detail yet so I don't know how to do use it. Thanks
-
gmadd about 13 years@user683526 I've updated my answer with some Ajax code, untested.
-
Marco Romano over 5 yearsthank you! it's about 3 days I working for do this!!