我的联系表不愿发送电子邮件。没有给出错误,但没有收到邮件(我没有在本地服务器上工作)。我使用的是面向对象的方式,而不是最简单的方法,它仍然应该工作..我的猜测是,邮件()函数根本没有触发,但我不明白为什么。PHP面向对象的联系表
所有帮助深表感谢!
contact.php
<?php
include_once('classes/sendmail.php');
if(isset($_POST['sendmessage'])){
try {
$e = new Email();
$e->Name = $_POST['name'];
$e->Email = $_POST['email'];
$e->Message = $_POST['message'];
$e->Send();
}
catch(Exception $e){
$error = $e->getMessage();
}
}
if(isset($error)){
echo $error;
}
?>
<!doctype html>
<body>
<form name="contactform" action="" method="post" enctype="text/plain">
<label for="name">Name</label>
<input type="text" name="name" id="name" class="name" />
<label for="email">E-mail</label>
<input type="text" name="email" id="email" class="email" />
<label for="message">Message</label>
<textarea id="message" name="message" ></textarea>
<input type="submit" class="send" value="Verzend" name="sendmessage" />
</form>
类/ sendmail.php
<?php
class Email{
private $m_sName;
private $m_sEmail;
private $m_sMessage;
public function __set($p_sProperty, $p_vValue){
switch($p_sProperty){
case 'Name':
if($p_vValue != '') {
$this->m_sName = $p_vValue;
}
else{
throw new Exception("No name found");
}
break;
case 'Email':
if($p_vValue != '') {
$this->m_sEmail = $p_vValue;
}
else{
throw new Exception("No email adress found");
}
break;
case 'Message':
if($p_vValue != '') {
$this->m_sMessage = $p_vValue;
}
else{
throw new Exception("No message found");
}
break;
}
}
public function __get($p_sProperty){
switch($p_sProperty){
case 'Name':
return $this->m_sName;
break;
case 'Email':
return $this->m_sEmail;
break;
case 'Message':
return $this->m_sMessage;
break;
}
}
public function Send(){
$email_to = "<my Email>";
$email_subject = "<my subject>";
$email_message = "Name: ".$this->m_sName."\n";
$email_message .= "Email: ".$this->m_sEmail."\n";
$email_message .= "Message: ".$this->m_sMessage."\n";
$headers = 'From: '.$this->m_sEmail."\r\n".
'Reply-To: '.$this->m_sEmail."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
}
}
?>
编辑:有很多问题已经被问及接触的形式,但没有一个是使用OOP似乎像我一样有同样的问题。
当你在send()函数内部回显时会发生什么? – Exception
回声究竟是什么?在页面顶部弹出任何内容。 – lvRoy