2013-03-29 2 views
0

Я не очень хорошо знаком с PHP, и я попытался реализовать простой почтовый скрипт на своей странице. Но ничего не происходит. Сервер, на котором я работаю, определенно поддерживает PHP. Нужно ли мне что-то делать, кроме как просто загружать мои файлы?Как отправить E-Mail с помощью PHP?

Итак, у меня есть мой contact.php, и в нем есть обычный нормальный HTML-код с тегом <? Php?> В разделе заголовка <.

Это выглядит следующим образом:

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

     // Sammeln der Formulardaten 
     $an = "[email protected]"; 
     $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> 

Если кто-нибудь может мне помочь с этим, было бы здорово! :)

+0

Если действие формы будет thank_you.html - это не будет запускать PHP-код, если только вы специально не настроили веб-сервер, чтобы сделать это, что вы вряд ли сделали бы это. –

ответ

0

Код, который вы поставили, должен работать, но предупреждайте, что вы оставляете себя открытым для потенциальных хаков.

Функция mail() PHP не прилагает усилий для дезинфекции входных данных, которые она получает; пользователи смогут отправлять адрес from с помощью фидов строк и добавлять дополнительные заголовки (например, CC или BCC) для отправки спама с вашего сайта.

Относительно легко дезинфицировать входные данные, но даже после этого вы остаетесь с функцией mail(), которая не очень проста в использовании - в итоге у вас будет много кода для относительно небольшой функциональности.

По этой причине я всегда рекомендую использовать стороннюю библиотеку почтовой рассылки. Для PHP есть несколько хороших; мой предпочтительный выбор - phpMailer. Загрузите этот PHP-скрипт, включите его как часть своего сайта и следуйте инструкциям о том, как отправлять почту, используя его - вы найдете его намного проще в использовании, чем функция mail(), и вам не нужно беспокоиться о взломать атаки, потому что он делает всю работу по санитарии для вас.

Надеюсь, что это поможет.

+0

Спасибо, я попробую! Но я все еще хочу знать, почему этот простой скрипт не работает ...;) – Kweamod

1

action вашей формы указывает на URL-адрес, который, вероятно, разрешен файлом .html. Большинство веб-серверов, поддерживающих PHP, не настроены на запуск файлов .html через процессор PHP. Вместо этого используйте расширение .php.

+0

Я изменил его, но все равно ничего не происходит ... – Kweamod

-1

Это ваша проблема,

Так у меня contact.php и в нем есть только нормальный HTML-код с <? PHP?> В разделе о < головки>.

Переместить PHP-код (включая теги) в теги HTML-тегов.

Также измените действие формы на ваш .php-файл.

+0

Я сделал именно то, что вы сказали, но никакой реакции вообще ...:/ – Kweamod

+0

Добавьте простой _echo 'Test'; _ перед вашей функцией mail(). Просто так мы можем видеть, что вы добираетесь так далеко. – Adrian

+0

Все еще ничего. Но сервер поддерживает PHP, об этом я уверен ...:/ – Kweamod

Смежные вопросы