如何使用materializeCSS和PHP发送电子邮件

时间:2017-11-18 17:53:28

标签: php html materialize

感谢您阅读本文, 我真的是编程的初学者,我需要一些我想要制作的简单网站的帮助。 我的目标是制作一个向我发送邮件的表单,但是当我按下发送时,它只是将我发送回页面顶部。我在下面粘贴HTML和php。我问你们的另一个问题是我是否必须在我的网络托管服务(ovh)上设置一些内容才能运行php?谢谢大家,再见:)!

html:

<form class="col s12">
  <div class="row">
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="first_name" type="text" class="validate">
      <label for="first_name">Prénom</label>
    </div>
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="last_name" type="text" class="validate">
      <label for="last_name">Nom de famille</label>
    </div>
  </div>
  <div class="row">
    <div class="input-field col s12">
      <i class="material-icons prefix">phone</i>
      <input id="Mail" type="email" class="validate">
      <label for="Mail">E-mail</label>
    </div>
  </div>
    <div class="row">
        <form class="col s12">
        <div class="row">
            <div class="input-field col s12">
            <i class="material-icons prefix">chat</i>
            <textarea id="message" class="materialize-textarea"></textarea>
            <label for="message">Message</label>
            </div>
        </div>
<button class="btn waves-effect waves-light" type="submit" 
name="action">Envoyer
<i class="material-icons right">send</i>
</button>
        </form>

PHP:

<?php 
if(isset($_POST['submit'])){
$to = "myemail@gmail.com";
$from = $_POST['Mail'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$subject = "Mail subject";
$message = $first_name . " " . $last_name . " à écrit ceci:" . "\n\n" . 
$_POST['message'];

$headers = "From:" . $from;
$headers2 = "From:" . $to;
mail($to,$subject,$message,$headers);
echo "Mail Sent. Thank you " . $first_name . ", we will contact you 
shortly.";

}
?>

5 个答案:

答案 0 :(得分:2)

好开始慢,这里有一些错误提交表单是客户端和服务器端的特殊对话框,在这种情况下服务器端PHP,表单标签需要首先要用来发送数据的方法所以或POST或GET但你必须在html FORM TAG中看到这个...所以你的html表单开始标记变为

<form class="col s12" method="post">

第二个问题是您要发送数据的位置?在哪个文件?并且必须在开始使用操作时在表单中写入,因此您的表单将成为。

 <form class="col s12" method="post" action="nameOfFilePHPWhereSendData.php">

如果操作在同一页面中,则操作可以留空,因此action =“” 在你不需要写

之后
   if( isset($_POST['submit']))

也因为是一个错误你必须使用html名称所以$ _POST ['action']你必须写你的$ _POST

 $from = $_POST['Mail'];
 $first_name = $_POST['first_name'];
 $last_name = $_POST['last_name'];

AHHH和恕我直言的意见最好使用输入类型=“提交”

答案 1 :(得分:1)

通过PHPMailer最佳选项发送电子邮件的简便方法。

检查一下! https://github.com/PHPMailer/PHPMailer

答案 2 :(得分:0)

你必须定义表单操作,当按钮单击将执行什么PHP脚本时,显然要发送邮件,你的服务器或托管确实需要一些配置

<form action="thephpfilename.php">

</form>

答案 3 :(得分:0)

谢谢大家帮助初学者,谢谢。 我按照你的说明和网络教程修改了一些我的代码,但现在发送了一封邮件,但它完全是emtpty,好像我的变量都是空的。感谢

的index.html

<form class="col s12" method="POST" action="mail.php">
  <div class="row">
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="first_name" type="text" class="validate" name="first_name">
      <label for="first_name">Prénom</label>
    </div>
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="last_name" type="text" class="validate" name="last_name">
      <label for="last_name">Nom de famille</label>
    </div>
  </div>
  <div class="row">
    <div class="input-field col s12">
      <i class="material-icons prefix">phone</i>
      <input id="mail" type="email" class="validate" name="email">
      <label for="mail">E-mail</label>
    </div>
  </div>
    <div class="row">
            <div class="input-field col s12">
            <i class="material-icons prefix">chat</i>
            <textarea id="message" class="materialize-textarea"></textarea>
            <label for="message">Message</label>
            </div>
  <button class="btn waves-effect waves-light" type="submit" name="action" id="submit" for="submit">Envoyer
<i class="material-icons right">send</i>
  </button>
    </div>
</form>

mail.php

<?php
error_reporting(E_ALL);
// if (isset($_POST['submit'])) {  <<-- not an error, I just wanted to get rid of it w/o deleting it
$prenom = !empty($_POST['first_name']) ? $_POST['first_name'] : NULL;
$nom = !empty($_POST['last_name']) ? $_POST['last_name'] : NULL;
$from = !empty($_POST['mail']) ? $_POST['mail'] : NULL;
$msg = !empty($_POST['message']) ? $_POST['message'] : NULL;

if(mail('hugoleon2002@gmail.com', 'Commande Amarrex', $msg))
{
     echo 'Le message a été envoyé';
}
else
{
     echo 'Le message n\'a pu être envoyé';
}
// }
?>

答案 4 :(得分:0)

我终于回答了我自己的问题,谢谢你的时间和帮助:) 再见

index.html:

<form class="col s12" method="POST" action="mail.php">
  <div class="row">
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="first_name" type="text" class="validate" name="first_name">
      <label for="first_name">Prénom</label>
    </div>
    <div class="input-field col s6">
      <i class="material-icons prefix">info</i>
      <input id="last_name" type="text" class="validate" name="last_name">
      <label for="last_name">Nom de famille</label>
    </div>
  </div>
  <div class="row">
    <div class="input-field col s6">
      <i class="material-icons prefix">mail</i>
      <input id="mail" type="email" class="validate" name="email">
      <label for="mail">E-mail</label>
    </div>
    <div class="input-field col s6">
      <i class="material-icons prefix">phone</i>
      <input id="phone" type="tel" name="phone">
      <label for="phone">Téléphone (optionel)</label>
    </div>
  </div>
    <div class="row">
            <div class="input-field col s12">
            <i class="material-icons prefix">chat</i>
            <textarea id="message" class="materialize-textarea" name="message"></textarea>
            <label for="message">Message</label>
            </div>
<button class="btn waves-effect waves-light" type="submit" name="action" id="submit" for="submit">Envoyer
<i class="material-icons right">send</i>
</button>
    </div>
</form>

mail.php:

<?php
$prenom = !empty($_POST['first_name']) ? $_POST['first_name'] : NULL;
$nom = !empty($_POST['last_name']) ? $_POST['last_name'] : NULL;
$from = !empty($_POST['email']) ? $_POST['email'] : NULL;
$msg = !empty($_POST['message']) ? $_POST['message'] : NULL;
$tel = !empty($_POST['phone']) ? $_POST['phone'] : NULL;
$headers = 'From: WEBSITE E-MAIL';
//  echo "$msg" . "$nom" . "$from";

if(empty($prenom) || empty($nom) || empty($from) || empty($msg)) 
{
     echo 'Mail couldn't be send, a fiel is empty';
}
elseif(mail('EMAIL ADRESS', "Commande Amarrex de $prenom $nom", "$prenom $nom a ecrit : $msg \n\n\n E-mail de contact : $from\n\n Telephone : $tel", "$headers"))
{
     echo 'Mail sent.';
}
else
{
    echo 'mail not sent, unexpected error';
}
// }
?>

这是有效的,即使它非常混乱也随意使用