如何用PHP发送电子邮件?

时间:2013-03-29 21:55:08

标签: php html email

我对PHP并不熟悉,我试图在我的页面上实现一个简单的邮件脚本。但似乎没有任何事情发生。我所使用的服务器肯定支持PHP。除了上传文件外,我还需要做什么吗?

所以我有我的contact.php,其中只有普通的HTML-Code,其中包含< ?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 );
    };
?>

当然我故意改变了“MYMAILADRESS”。 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>

如果有人能帮助我,那就太好了! :)

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您提供的代码应该可以使用,但要注意您将自己留给潜在的黑客。

PHP的mail()函数不会努力清理它收到的输入;您的访问者可以使用换行符发送from地址,并添加一些其他邮件标题(例如CC或BCC),以便从您的网站发送垃圾邮件。

清理输入相对容易,但即便如此,你仍然需要使用mail()函数并不是很容易使用 - 你最终会得到很多相对较少功能的代码。

出于这个原因,我总是建议使用第三方邮件库。有几个很好的PHP可用;我的首选是phpMailer。下载此PHP脚本,将其作为您网站的一部分包含在内,并按照如何使用它发送邮件的说明进行操作 - 您会发现它比mail()功能更容易使用,而您却没有需要担心黑客攻击,因为它会为你完成所有的输入消毒工作。

希望有所帮助。

答案 2 :(得分:-1)

这是你的问题,

  

所以我有我的contact.php,其中只有普通的HTML-Code,其中包含&lt; ?php?&gt;在&lt;中标记头&GT;部分。

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

另外,将表单操作更改为.php文件。