首页 > 解决方案 > php联系表格向服务器管理员发送邮件

问题描述

我的联系表格没什么问题。它不会向服务器管理员发送邮件。

<?php
session_start();
// get the data from the form
$admin_email = 'server@admin.com';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$subject = 'Contact Form';
$name = isset($_POST['name']) ? $_POST['name'] : '';
$message = isset($_POST['message']) ? $_POST['message'] : '';
$captcha = isset($_POST['captcha']) ? $_POST['captcha'] : '';
$img_session = isset($_SESSION['img_session']) ? $_SESSION['img_session'] : '';
$website = $_SERVER['www.mywebsite.com'];

// check if the fields are empty
if(empty($email) or empty($name) or empty($email) or empty($message)){
    $output = "All fields are required!";
}else{
    if(md5($captcha) == $img_session){
$header = "From: $email"."\r\n"
.'Content-Type: text/plain; charset=utf-8'."\r\n";

$message = "
New entry from $subject!

Name: $name
E-Mail: $email
Message:
$message

This message was sent from http://$website";

        if(mail($admin_email, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $header)){
            $output = "Your message was sent!<br />Thank you!";
        }
    }else{
        $output = "Wrong captcha code!";
    }
}
echo $output;
?>

更新

错误的部分是如果 $admin_email 与联系表单电子邮件地址不匹配错误验证码错误弹出?我不知道为什么。我的意思是,如果我不写联系表格电子邮件行,与 admin_email 相同的地址我不能发送邮件???我在这里尝试做的事情:向客人发送邮件(您的邮件已发送),以及 $admin_email: server@admin.com (您有电子邮件)$messege。

形式

<form action="" id="contact_form" method="POST">
  <p>Name:</p>
  <input type="text" name="name" placeholder="Enter name" required=""/>
  <p>Email:</p>
  <input type="email" name="email" placeholder="Enter email" required=""/>
  <p>Message:</p>
  <textarea name="message" rows="10" cols="30" required=""></textarea>
  <p>Captcha:</p>
  <img src="captcha.php" id="captcha"/>
  <input type="text" name="captcha" placeholder="Enter code" required=""/>
  <input type="submit" value="Submit" />
</form>

标签: php

解决方案


如果您想同时向用户和管理员发送电子邮件,请尝试调用邮件功能两次,例如


 if(mail($user_email_address, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $header)){
            $output = "Your message was sent!<br />Thank you!";
        }

 if(mail($admin_email_address, '=?utf-8?B?'.base64_encode($subject).'?=', $message, $header)){
            $output = "You've got a new message from @user_email_address <br /> ";
        }

推荐阅读