Estamos realizando un modulo para php para envio de ficheros adjuntos por mail, actualmente estamos usando PHP 5.3 con lo que nos hemos encontrado que el modulo phpmailer esta usando algunas funciones obsoletas el error que nos encontramos es el siguiente.
Error PHPMailer
- Deprecated function: Function set_magic_quotes_runtime() is deprecated en PHPMailer->EncodeFile() (línea 1471 de /var/www//libraries/class.phpmailer.php).
- Deprecated function: Function set_magic_quotes_runtime() is deprecated en PHPMailer->EncodeFile() (línea 1475 de /var/www//libraries/class.phpmailer.php).
El problema reside enla funcion EncodeFile
private function EncodeFile($path, $encoding = ‘base64’) {
try {
if (!is_readable($path)) {
throw new phpmailerException($this->Lang(‘file_open’) . $path, self::STOP_CONTINUE);
}
if (function_exists(‘get_magic_quotes’)) {
function get_magic_quotes() {
return false;
}
}
if (PHP_VERSION < 6) {
$magic_quotes = get_magic_quotes_runtime();
set_magic_quotes_runtime(0);
}
$file_buffer = file_get_contents($path);
$file_buffer = $this->EncodeString($file_buffer, $encoding);
if (PHP_VERSION < 6) { set_magic_quotes_runtime($magic_quotes); }
return $file_buffer;
} catch (Exception $e) {
$this->SetError($e->getMessage());
return »;
}
}
Solucion debemos remplazarla por esta función basicamente lo que hacemos es poner ini_set(«magic_quotes_runtime», valor)
private function EncodeFile($path, $encoding = ‘base64’) {
try {
if (!is_readable($path)) {
throw new phpmailerException($this->Lang(‘file_open’) . $path, self::STOP_CONTINUE);
}
if (function_exists(‘get_magic_quotes’)) {
function get_magic_quotes() {
return false;
}
}
if (PHP_VERSION < 6) {
$magic_quotes = get_magic_quotes_runtime();
ini_set(«magic_quotes_runtime», 0);
}
$file_buffer = file_get_contents($path);
$file_buffer = $this->EncodeString($file_buffer, $encoding);
if (PHP_VERSION < 6) { ini_set(«magic_quotes_runtime», $magic_quotes); }
return $file_buffer;
} catch (Exception $e) {
$this->SetError($e->getMessage());
return »;
}
}