0

我对 PHP 不是很熟悉,我尝试在我的页面上实现一个简单的邮件脚本。但似乎什么也没有发生。我所在的服务器绝对支持 PHP。除了上传文件之外,我还需要做其他事情吗?

所以我有我的contact.php,其中只有普通的HTML 代码,在 <head> 部分带有 < ?php ?> 标记。

它是这样的:

<?php
    // Ausführen wenn Formular gesendet
    if (isset($_POST["submit"]))
    {

        // Sammeln der Formulardaten
        $an = "MYMAILADRESS@outlook.com";
        $name = $_POST['name'];
        $email = $_POST['email'];
        $betreff = $_POST['betreff'];
        $nachricht = $_POST['nachricht'];

        // Mailheader UTF-8 fähig machen
        $mail_header = 'From:' . $email . "\n";
        $mail_header .= 'Content-type: text/plain; charset=UTF-8' . "\r\n";

        // Nachrichtenlayout erstellen
        $message = "
            Name:       $name\n
            Email:      $email\n
            Nachricht:  $nachricht\n
        ";

        // Verschicken der Mail
        mail($an, $betreff, $message, $mail_header );
    };
?>

当然,我故意更改了“MYMAILADDRESS”。HTML 表单如下所示:

<form id="form" action="thank_you.html" method="post">
        <label for="name">Name:</label>
        <input id="name" name="name" type="text" /><br />
        <label for="email">E-Mail: *</label>
        <input id="email" name="email" type="text" /><br />
        <label for="betreff">Betreff:</label>
        <input id="betreff" name="betreff" type="text" /><br />
        <label for="nachricht">Nachricht: *</label>
        <textarea id="nachricht" name="nachricht"></textarea><br />
        <p class="fussnote">* kennzeichnet Pflichtfelder</p>
        <input id="submit" name="submit" type="submit" value="Absenden" />
    </form>

如果有人可以帮助我解决这个问题,那就太好了!:)

4

3 回答 3

1

您的action表单指向一个可能由.html文件解析的 URL。大多数支持 PHP 的 Web 服务器未配置为.html通过 PHP 处理器运行文件。请改用.php扩展名。

于 2013-03-29T22:07:40.867 回答
0

您提供的代码应该可以工作,但请注意,您会让自己容易受到潜在的黑客攻击。

PHP 的mail()函数不努力清理它接收到的输入;您的访问者可以发送from带有换行符的地址,并添加一种额外的邮件标题(例如 CC 或 BCC),以便从您的站点发送垃圾邮件。

清理输入相对容易,但即便如此,您的mail()功能也不是很容易使用 - 您最终会得到大量代码,但功能相对较少。

出于这个原因,我总是建议使用第三方邮件程序库。PHP 有几个不错的选择。我的首选是phpMailer。下载这个 PHP 脚本,将其作为您网站的一部分,然后按照说明使用它发送邮件——您会发现它比该mail()功能更容易使用,而且您无需担心黑客攻击攻击,因为它会为您完成所有输入清理工作。

希望有帮助。

于 2013-03-29T22:05:45.823 回答
-1

这是你的问题,

所以我有我的contact.php,其中只有普通的HTML 代码,在 <head> 部分带有 < ?php ?> 标记。

将 PHP 代码(inc 标签)移动到 HTML 正文标签中。

此外,将您的表单操作更改为您的 .php 文件。

于 2013-03-29T22:09:12.107 回答