Send email with PHP from html form on submit with the same script

前端 未结 8 1872
情深已故
情深已故 2020-11-22 01:22

I want to send an email with PHP when a user has finished filling in an HTML form and then emailing information from the form. I want to do it from the same script that disp

8条回答
  •  鱼传尺愫
    2020-11-22 01:42

    EDIT (#1)

    If I understand correctly, you wish to have everything in one page and execute it from the same page.

    You can use the following code to send mail from a single page, for example index.php or contact.php

    The only difference between this one and my original answer is the

    where the action has been left blank.

    It is better to use header('Location: thank_you.php'); instead of echo in the PHP handler to redirect the user to another page afterwards.

    Copy the entire code below into one file.

    
    
    
    
    Form submission
    
    
    
    
    First Name: 
    Last Name:
    Email:
    Message:


    Original answer


    I wasn't quite sure as to what the question was, but am under the impression that a copy of the message is to be sent to the person who filled in the form.

    Here is a tested/working copy of an HTML form and PHP handler. This uses the PHP mail() function.

    The PHP handler will also send a copy of the message to the person who filled in the form.

    You can use two forward slashes // in front of a line of code if you're not going to use it.

    For example: // $subject2 = "Copy of your form submission"; will not execute.

    HTML FORM:

    
    
    Form submission
    
    
    
    
    First Name:
    Last Name:
    Email:
    Message:


    PHP handler (mail_handler.php)

    (Uses info from HTML form and sends the Email)

    
    

    To send as HTML:

    If you wish to send mail as HTML and for both instances, then you will need to create two separate sets of HTML headers with different variable names.

    Read the manual on mail() to learn how to send emails as HTML:

    • http://php.net/manual/en/function.mail.php

    Footnotes:

    • In regards to HTML5

    You have to specify the URL of the service that will handle the submitted data, using the action attribute.

    As outlined at https://www.w3.org/TR/html5/forms.html under 4.10.1.3 Configuring a form to communicate with a server. For complete information, consult the page.

    Therefore, action="" will not work in HTML5.

    The proper syntax would be:

    • action="handler.xxx" or
    • action="http://www.example.com/handler.xxx".

    Note that xxx will be the extension of the type of file used to handle the process. This could be a .php, .cgi, .pl, .jsp file extension etc.


    Consult the following Q&A on Stack if sending mail fails:

    • PHP mail form doesn't complete sending e-mail

提交回复
热议问题