Programación para formularios de envío de correo
Los mensajes generados desde formularios PHP usando la función mail(), por defecto, tienen como FROM real del mensaje (Envelope Sender) la dirección nobody@servidor o anonymous@servidor.
El Envelope Sender es la dirección a donde se enviarán los mensajes de error en caso de haber algún problema con la entrega del mensaje al destinatario, por lo que si tiene el valor por defecto, dichas notificaciones no llegan nunca.
Además, muchos spammers que usan formularios web para el envío de mensajes no solicitados, usan dicha dirección por defecto para el envío, por lo que desde VEDCOR se ha procedido a evitar la salida desde nuestros servidores mensajes con dicho FROM y entre otras cosas, evitar así caer en listas negras.
Para cambiar dicha dirección FROM, lo que se debe hacer es añadir un parámetro adicional a la llamada a la función mail() en el que se indica la dirección de correo deseada para que se establezca como Envelope Sender, por ejemplo, la llamada habitual:
mail ("usuario@destino.com", "Asunto del mensaje", "Cuerpo del mensaje", $cabeceras)
debe cambiarse por algo como:
mail ("usuario@destino.com", "Asunto del mensaje", "Cuerpo del mensaje", $cabeceras, '-fusuario@origen.com');
Como se ve, el último parámetro es '-fusuario@origen.com' en el que se indica, seguido de "-f", la dirección que se quiera poner como FROM para el retorno de errores de mensajes y evitar que salgan como nobody o anonymous.
La dirección de correo usuario@origen.com, obviamente, debe ser de tu dominio y debe existir.
Además, para que funcione correctamente, la variable safe_mode de PHP debe estar a Off.
Con esto, los emails desde OsCommerce saldrán correctamente.
