PHP联系表单提交但未收到电子邮件

丹尼W86

我意识到这个问题之前已经被问过无数次了,但是每个人的代码显然都不同,而且我对php还是很陌生,所以只想看看是否有人可以给我一些帮助。

我已经为网站创建了一个基本的联系表单,但是由于某些原因,尽管我认为该表单已提交,但信息没有发送到我的电子邮件地址?

我的PHP代码是:

<?php
session_start();
//$to_mail = "[email protected],[email protected],[email protected]";
$to_mail = "[email protected]";
//$cc="[email protected]";
$mail_sent = 0;
if(isset($_POST['submit'])){
    //echo "the form was submitted";

$error= array();

$name = trim(strip_tags($_POST['name']));
if($name == "")
    $error['name'] = 1;

$email = trim(strip_tags($_POST['email']));
if($email == "")
    $error['email'] = 1;

$phone = trim(strip_tags($_POST['phone']));

$address = trim(strip_tags($_POST['address']));

$description = trim(strip_tags($_POST['description']));

$str = trim(strip_tags($_POST['secu']));
if ( isset($_SESSION['code_']) && $_SESSION['code_'] == strtoupper($str)){} else {$error['secu'] = 1;}


if(empty($error)){
    $headers = 'From: "Euro Insulation" <[email protected]>'."\r\n";
    //$headers .= 'CC: "'.$cc.'" <'.$cc.'>'."\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "";



    $subject = "New contact message";

    $message = "New Contact message, received from: <br /> \n ";
    $message .= "<b>Name</b> ".$name."<br /> \n";
    $message .= "<b>Email</b> ".$email."<br /> \n";

    $message .= "<b>Phone</b> ".$phone."<br /> \n";
    $message .= "<b>Address</b> ".$address."<br /> \n";

    $message .= "<b>Description</b> ".$description."<br /> \n";

    if(@mail($to_mail,$subject,$message,$headers ))
    {
        echo "mail sent";
        $mail_sent = 1;
    }
    else echo "mail not sent";
}

}

?>

我的html表单如下所示:

<table width="100%"  border="0" cellspacing="0" cellpadding="10">
                <tr>
                  <td width="65%" valign="top"><p class="header"><br>
        Contact US <br>
                  </p>
                      <?php if($mail_sent==1){
    print "Thank you for your message.";
} else { ?>
<form class="email_sub" method="post" >

<table width="77%"  border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td><label for="name" class="formtext" <?php if($error['name']==1) echo "style='color:red;'" ?> >Name:</label></td>
<td><input type="text" name="name" id="text"  <?php if($name) echo "value='".$name."'" ?>  /></td>
</tr>
<tr>
<td><label for="phone" class="formtext">Number:</label></td>
<td><input type="text" name="phone" id="phone"/><tr>
<br />

<tr>
<td><label for="email" class="textarea" <?php if($error['email']==1) echo "style='color:red;'" ?>>Email:</label></td>
<td><input type="text" name="email" id="email"  <?php if($email) echo "value='".$email."'" ?>  /></td>
</tr>
<tr>
<td><br /></td>
</tr>

<tr><td><label for="address" class="textarea">Address/Location of project:</label></td>
<td><textarea rows="3" cols="20" name="address" id="address" style="width: 400px;"><?php if($address!="") echo $address ?></textarea></td>
</tr>
<tr>
<td><br /></td>
</tr>
<br />
<tr>
<td><label for="description" class="fixedwidth">Enquiry</label></td>
<td><textarea rows="3" cols="20" name="description" id="description" style="width: 400px;"><?php if($description!="") echo $description; ?></textarea></td>
<tr>
<td><br /></td>
</tr>

<!-- form -->
<tr>
<td><label>&nbsp;</label></td>
<td><input type="submit" value="Submit" name="submit" /></td>
</tr>
</table>
</form>
<?php } ?>        

我在这里缺少明显的东西吗?任何帮助将不胜感激,谢谢!

迪彭德拉·古龙(Dipendra Gurung)

您已使用了此处不需要的会话,也可以使用标志变量而不是数组以这种简单形式使用此更新的代码。

<?php
//$to_mail = "[email protected],[email protected],[email protected]";
$to_mail = "[email protected]";
//$cc="[email protected]";
$mail_sent = 0;
if(isset($_POST['submit'])){
    //echo "the form was submitted";

$name = trim(strip_tags($_POST['name']));
if($name == "")
    $error = true;

$email = trim(strip_tags($_POST['email']));
if($email == "")
    $error = true;

$phone = trim(strip_tags($_POST['phone']));
$address = trim(strip_tags($_POST['address']));
$description = trim(strip_tags($_POST['description']));


if($error != true){
    $headers = 'From: "Euro Insulation" <[email protected]>'."\r\n";
    //$headers .= 'CC: "'.$cc.'" <'.$cc.'>'."\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "";

    $subject = "New contact message";

    $message = "New Contact message, received from: <br /> \n ";
    $message .= "<b>Name</b> ".$name."<br /> \n";
    $message .= "<b>Email</b> ".$email."<br /> \n";

    $message .= "<b>Phone</b> ".$phone."<br /> \n";
    $message .= "<b>Address</b> ".$address."<br /> \n";

    $message .= "<b>Description</b> ".$description."<br /> \n";

    if(@mail($to_mail,$subject,$message,$headers))
    {
        echo "mail sent";
        $mail_sent = 1;
    }
    else echo "mail not sent";
} else {
    echo 'validation error';
}
}
?> 

您还错过了表单验证测试的else语句,因此提交表单时不会显示任何错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP Mailer 返回 true 但未收到电子邮件

PHP联系表格,未收到电子邮件

联系表 7 显示已发送消息但未收到电子邮件

Cakephp电子邮件已发送但未收到

php 显示消息已发送但未收到到我的电子邮件

不再收到联系表单中的电子邮件?

没有从 PHP 联系表单收到任何电子邮件

网站联系表单提交空白电子邮件

PHP,电子邮件提交表单

HTML PHP电子邮件提交表单

Jenkins电子邮件通知已成功发送但未收到

Plesk,未收到传入电子邮件

我无法使用Java Mail API发送电子邮件,但电子邮件已发送但未收到或未显示在已发送的电子邮件中

PHP联系表单消息未收到

添加额外的INPUT以联系表单电子邮件PHP

如何验证此 PHP 联系表单中的电子邮件?

Firebase身份验证:已通过特殊电子邮件地址(例如*@gmx.at)发送但未收到的电子邮件

PHP表单提交到多封电子邮件

不使用php提交电子邮件表单

带有 Laravel 的 Plesk PHP 电子邮件未收到 DKIM 签名

PHP 电子邮件工作正常,但用户实际上并未收到

Yii2 表单验证但未提交以发送电子邮件

用户使用Laravel提交联系表单时接收电子邮件

如何通过电子邮件发送ApostropheCMS联系人表单提交内容?

未收到 Hellosign 多个签名者电子邮件

某些人未收到电子邮件

反复未收到iOS TestFlight构建通知电子邮件

Gmail未收到来自SendGrid的电子邮件

Opencart 2.3中未收到电子邮件