Manuales de Hosting LMI Glossary    Contact Us
Search  
Manuales de Hosting LMI .: Desarrollo de Paginas Web .: Configurar osCommerce para evitar que los emails sean enviados por nobody@hostinglmi.net

Configurar osCommerce para evitar que los emails sean enviados por nobody@hostinglmi.net

Funcion mail(). osCommerce, evitar el retorno nobody

osCommerce, así como muchos otros scripts, presentan un defecto en este sentido. El uso de la función mail() es usado de forma anticuada y restrictiva para servidores como los nuestros en los que PHP se ejecuta de forma normal: los emails son enviados con el Return-Path: vació o asignado al usuario que ejecuta el servidor web, en nuestro caso Apache y el usuario nobody.

Para evitar este comportamiento (en osCommerce) deberemos editar en los directorios /catalog/includes/classes y /catalog/admin/includes/classes, el fichero email.php, el cual controla la gran mayoría de las funciones de correo electrónico de este software de comercio electrónico.

Al rededor de la linea 500 veremos lo siguiente:

if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output,
'From: ' . $from . $this->lf .
'To: ' . $to . $this->lf .
implode($this->lf, $this->headers) . $this->lf .
implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output,
'From: '.$from.$this->lf.implode($this->lf, $this->headers).
$this->lf.implode($this->lf, $xtra_headers));
}
}

Deberemos modificar cada instancia de la función mail() para incluir el quinto parámetro ( -fusuario@dominio.tld) que apareció en la versión 4.2.3 (atención porque en sitios con safe_mode activado este esta desactivado). Deberá ser cuidadoso, con los paréntesis.

if (EMAIL_TRANSPORT == 'smtp') {

return mail($to_addr, $subject, $this->output, 'From: ' . $from .
$this->lf . 'To: ' . $to . $this->lf . implode($this->lf,
$this->headers) . $this->lf . implode($this->lf,
$xtra_headers),'-f' . 'micorreo@midominio.tld');

} else {

return mail($to, $subject, $this->output, 'From:
'.$from.$this->lf.implode($this->lf,
$this->headers).$this->lf.implode($this->lf,
$xtra_headers),'-f' . 'micorreo@midominio.tld');

}

}

En el caso de otros muchos scripts (doy fe de ello por los mensajes que tengo que procesar como administrador) existe un problema parecido.

La sintaxis correcta en cada caso y dependiendo de la programación debería terminar ejecutando la función mail() como sigue:

mail($destinationaddress, $subject, $message, $extraheaders,'-f' .
$fromaddress);
NOTA: Obsérvese, que el quinto parámetro va seguido de la dirección de correo sin espacios.

Esto permitirá que los correos enviados por vuestro software, en caso de que el servidor no los pueda entregar, lleguen a la dirección que pongáis, y no al postmaster del servidor.

Un saludo.

NOTA: Si alguien se ve con animo, supongo que podrá encontrar la variable usada por osCommerce para devolver la dirección que figura en la configuración de cada tienda, en vez de poner el email a mano en el código. Si lo hace por favor, enviarnos la solución para actualizar esta noticia.

Related Articles

article Redireccionamientos de emails por dominio
El Redireccionamiento de Correo simplemente...

(No rating)  2-9-2006    Views: 5230   
article Como usar y configurar el FTP
FTP es uno de los diversos protocolos de la...

(No rating)  2-9-2006    Views: 7591   
article Cuanta capacidad puede tener los archivos adjuntos enviados por mail?
No hay ningúna limitación, pero lamentablemente...

(No rating)  2-16-2006    Views: 25537   

User Comments

Add Comment
No comments have been posted.


.: Powered by Lore 1.5.9