I'm getting this error message trying to use PHP Mailer. Please let me know if you see what is wrong.
Fatal error: Cannot access empty property in /hsphere/local/home/c263430/quoralist.com/includes/phpmailer/phpmailer.inc.php on line 271
Line 271 of phpmailer.inc.php is
$header[] = sprintf("Content-Transfer-Encoding: %s\n", $this->$Encoding);
The code that called phpmailer.inc.php is
<?php
require_once("../includes/phpmailer/phpmailer.inc.php");
require_once("../includes/phpmailer/smtp.inc.php");
$to_name = "Junk Mail";
$to = "m73mit@gmail.com";
$subject = "Mail Test at ".strftime("%T", time());
$message = "This is a test.";
$message = wordwrap($message, 70);
$from_name = "Michael Mitchell";
$from = "michaeljohnmitchell@gmail.com";
//Php mail version (default)
$mail = new PHPMailer();
//$mail->IsSMTP();
//$mail->Host = "host"
//$mail->Port = 25;
//$mail->SMTPAuth = false;
//$mail->Username = "username";
//$mail->Password = "password";
$mail->FromName = $from_name;
$mail->From = $from;
$mail->AddAddress($to, $to_name);
$mail->Subject = $subject;
$mail->Body = $message;
$result = $mail->Send();
echo $result ? 'Sent' : 'Error';
?>
EDIT
following a suggestion in one of the answers, I tried $this->Encoding
instead of $this-&开发者_如何学Cgt;$Encoding
. When I ran it I got a new error message, not sure if it's related.
Fatal error: Cannot redeclare class SMTP in /hsphere/local/home/c263430/quoralist.com/includes/phpmailer/smtp.inc.php on line 26
The class at line 26 of smtp.inc.php is
class SMTP {
var $SMTP_PORT = 25; # the default SMTP PORT
var $CRLF = "\r\n"; # CRLF pair
var $smtp_conn; # the socket to the server
var $error; # error if any on the last call
var $helo_rply; # the reply the server sent to us for HELO
var $do_debug; # the level of debug to perform
try to write $this->Encoding
accessing member variables does not require an additional $ sign.
In addition I show you here my mail class from my old framework.
class Utils_EMail {
public static function sendMail($subject,$msg,$to = ADMIN_EMAIL_ADRESS){
$headers = "Mime-Version: 1.0 \n";
$headers .= "Content-Type: text/plain;charset=UTF-8 \n";
$headers .= "From: ".mb_encode_mimeheader(HTTP_HOST,"UTF-8","AUTO")."<".SYSTEM_EMAIL_ADRESS."> \n";
$subject = mb_convert_encoding($subject,"UTF-8","AUTO");
$msg = mb_convert_encoding($msg,"UTF-8","AUTO");
mb_internal_encoding("UTF-8");
mb_send_mail($to,$subject,$msg,$headers);
}
}
The problem is this line:
$header[] = sprintf("Content-Transfer-Encoding: %s\n", $this->$Encoding);
Change it to this:
$header[] = sprintf("Content-Transfer-Encoding: %s\n", $this->Encoding);
I had this exact error. Check what version of PHPMailer you're using. I downloaded Version 5/6 from sourceforge.net and somehow ended up with the original version from 2001.
Get the latest one from here:
http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list
精彩评论