我有这个工作,我不知道我做了什么,使它停止。这里是我的电子邮件类:电子邮件类PHP停止工作
<?php
// File Details: Base mail class
class Email {
private $to = '[email protected]';
public $email = NULL;
public $phone = NULL;
public $subject = NULL;
public $body = NULL;
//private $magic_quotes_active;
// private $real_escape_string_exists;
//function __construct() {
//$this->magic_quotes_active = get_magic_quotes_gpc();
//$this->real_escape_string_exists = function_exists("mysql_real_escape_string");
//}
public function send() {
$this->addHeader('From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion() . "\r\n");
$this->addHeader("MIME-Version: 1.0\r\n");
$this->addHeader("Content-Type: text/html; charset=ISO-8859-1\r\n");
$success = mail($this->to, $this->subject, $this->body, $this->headers);
if ($success) {
return true;
} else {
return false;
}
}
private function addHeader($header) {
$this->headers .= $header;
}
public function setName($first, $last) {
$this->first = $first;
$this->last = $last;
}
public function setSubject($subject) {
$this->subject = $subject;
}
public function setPhone($phone) {
$this->phone = $phone;
}
public function setEmail($email) {
$this->email = $email;
}
public function setBody($body) {
//$this->body = $this->escape_value($body);
$this->body = $body;
}
//public function escape_value($value) {
// if ($this->real_escape_string_exists) { // PHP 4.3.0 or higher
// // undo any magic quote effects so mysql_real_escape_string can do the work
// if ($this->magic_quotes_active) {
// $value = stripslashes($value);
// }
// $value = mysql_real_escape_string($value);
//
// } else { // before PHP v.4.3.0
// //if magic quotes aren't already on then add slashes manually
// if (!$magic_quotes_active) {
// $value = addslashes($value);
// }
// }
//
// return $test;
// }
}
$mail = new Email();
$mail->setSubject($_POST['subject']);
$mail->setBody($_POST['body']);
$mail->setName($_POST['first'], $_POST['last']);
$mail->setEmail($_POST['email']);
$mail->setPhone($_POST['phone']);
$mail->send();
?>
在这里,我称之为:
$mail = new Email();
$mail->setName($_POST['first'], $_POST['last']);
$mail->setSubject($_POST['subject']);
$mail->setBody($_POST['body']);
$mail->setEmail($_POST['email']);
$mail->setPhone($_POST['phone']);
$mail->send();
我必须在脚本的顶部,一旦需要的类和我没有得到任何时候PHP错误我运行它。当我回显$mail->send();
它回来是真实的。所以有人可以帮助我理解这里发生的事情(或者为什么事情不再发生,更确切地说)。电子邮件永远不会来。
感谢今天大家的帮助,顺便说一句。
的PHPMailer也允许登录通过SMTP,这使得它让你的主机上的实际的,有效的电子邮件帐户被分派邮件。如果许多配置较好的邮件服务器在源主机中不代表有效的用户,它们将拒绝邮件中包含的邮件和回复邮件头。例如,Gmail在确定垃圾邮件时也会执行此操作并检查有效的SPF记录。 – DeaconDesperado 2010-12-14 23:08:44