Sending emails automatically at the click of a button

95,900

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.

Share:
95,900
Daniel H
Author by

Daniel H

Updated on November 26, 2020

Comments

  • Daniel H
    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
    Daniel H about 13 years
    Thanks 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
    gmadd about 13 years
    It'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
    Daniel H about 13 years
    Hi 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
    gmadd about 13 years
    @user683526 I've updated my answer with some Ajax code, untested.
  • Marco Romano
    Marco Romano over 5 years
    thank you! it's about 3 days I working for do this!!