HTML表单 - 如何使用GET方法生成电子邮件?

时间:2013-03-14 16:03:01

标签: php html forms email get

我希望这个问题有一个简单的答案。

我在网站上有一个HTML表单,它使用GET方法将表单中的变量发送到PHP页面,即

<form name="create_landing_page" action="/landing-page/" method="get">

我想要做的是在提交该表单时生成电子邮件,因此我将动态URL写在某处,因为我们不将它们保存到数据库中。我尝试在登录页面上放置一些PHP,当页面使用此方法加载时自动生成电子邮件:How to send an email notification when a page is visited?,但我没有收到任何测试邮件。

是否有一种非常简单的方法可以从提交的表单中获取变量并通过电子邮件发送,或从目标网页抓取网址并通过电子邮件发送?

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

最好的方法是从表单中检索值,然后通过电子邮件发送这些值:

注意:我没有以任何方式清理输入 - 所以如果您打算使用数据库,请务必清理它们!

<强> LandingPage.html

<form name="create_landing_page" action="/landing-page/" method="get">
<input name="email_address" value="Enter your email" />
<input name="name" value="Enter your name" />
</form>

<强>着陆页(.PHP)

        if(isset($_GET['email_address']) && !empty($_GET['email_address'])){
    $emailAddress = $_GET['email_address'];
    }

        if(isset($_GET['name']) && !empty($_GET['name'])){
    $name= $_GET['name'];
    }

        $to      = $emailAddress;
        $subject = 'the subject';
        $message = 'hello ' . $name;
        $headers = 'From: youremail@example.com' . "\r\n" .
            'Reply-To: youremail@example.com' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

        if(!mail($to, $subject, $message, $headers))
        {
            die('There was an error sending out the email');
        }

答案 1 :(得分:1)

原因可能是您的系统上没有邮件服务,请尝试:

$result=mail($mailAddress,$subject,$content);
if(!$result)
    die("Mail subsystem error!");

答案 2 :(得分:0)

如果您想知道运行脚本的页面的完整路径,包括任何参数,您可以使用_SERVER["REQUEST_URI"]

根据您的应用托管位置以及服务器配置方式,发送邮件可能会非常棘手。有时通过托管服务来禁用mail()命令以减少垃圾邮件。如果您使用的是共享托管服务,则可能需要检查mail()是否可用。