如何通过PHP从HTML文件中发送电子邮件?

时间:2013-07-31 13:54:21

标签: php html html5 email

我的网站是HTML5。因此,我的文件为.html。我有一个contact.html文件,我想用它来发送消息,使用PHP。我没有太多的PHP经验(所以如果有人可以推荐更好的替代方案,非.NET方式发送电子邮件,请告诉我)。

我最初的想法是将我的PHP代码包含在我的HTML文件中(无论这是否可行,甚至是推荐,我不知道)。我以前做过这个,我相信我记得有一个form标签,其属性中的某个地方指定了我用来发送电子邮件的.php文件。

类似于<form someattribute="sendmail.php"> ... </form>

问题:鉴于我 THINK 我应该做(上图),这是最好的方法(在我的表单标签中指定PHP文件),还是你推荐的从原始.html文件发送电子邮件的更好方法是什么?

5 个答案:

答案 0 :(得分:5)

你不能只用HTML做到这一点。如果您坚持使用PHP解决方案,请尝试

<?php
    if(isset($_POST['send'])) //check the submit button was pressed
    {
        //get variables from POST array. Remember we specified POST method
        $to = $_POST['to'];
        $subject = $_POST['subject'];
        $message = $_POST['message'];

        //set up headers
        $headers = 'From: webmaster@example.com' . "\r\n" .
                    'Reply-To: webmaster@example.com' . "\r\n" .
                    'X-Mailer: PHP/' . phpversion();

        //send the email and save the result
        $result = mail($to, $subject, $message, $headers); 

        //was it sent?
        if($result)
        {
            echo "Successfuly sent the email";
        }
        else
        {
            echo "An error has occured";
        }
    }
?>
<hr>
<form method="POST">
    To: <input type="text" name="to"> <br>
    Subject: <input type="text" name="subject"> <br>
    Text: <textarea name="message"></textarea><br>
    <input type="submit" value="Send" name="send">
</form>

您无需指定表单指向的位置,因为它是同一个文件。否则就是

<form action="somefile.php" method="POST">

尽管你必须指定方法POST,否则所有数据都将默认通过GET发送

PHP有一个邮件功能,用于发送电子邮件http://php.net/manual/en/function.mail.php

  

如果邮件成功接受传递,则返回TRUE,FALSE   否则。

我们检查是否发送了电子邮件并打印相应的消息。然后,无论结果如何,我们都会打印出消息表单。

答案 1 :(得分:2)

您可以通过将数据发布到php文件中轻松发送邮件。只需要在php文件和用户 action ='phpfilename.php'中编写一些代码。就是这样。

答案 2 :(得分:2)

如果您只是想通过电子邮件发送表单信息,那就非常简单了。

<form action="sendmail.php">

只需要确保你正确编码你的php文件。

答案 3 :(得分:2)

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

mail.html

<form action="mail.php" method="post">
    To <input type="text" name="to"/><br/>
    Subject <input type="text" name="subject"/><br/>
    Message <textarea name="message"></textarea><br/>
    <input type="submit" value="Send"/>
</form>

mail.php

<?php
    mail($_POST["to"] , $_POST["subject"], $_POST["message"]);
    header("Location: mail.html"); //redirect the user
?>

答案 4 :(得分:1)

HTML只是客户端,只是标记,因此无法发送电子邮件。您应该有一个表格,可以按照您的建议发布到PHP页面,并且PHP页面会发送电子邮件。

http://www.w3schools.com/php/php_forms.asp http://www.w3schools.com/php/php_mail.asp