Revista Informática

Permitir envío de emails desde Formularios de Contacto de WordPress en Dinahosting

Publicado el 03 julio 2014 por Displaynone

La sorpresa que me he llevado cuando Dinahosting, en el hosting compartido, no permite el uso de la función mail si no le indicas en las cabeceras un email registrado en el dominio. Algo así:

$to = '[email protected]';
$subject = 'Prueba';
$email_text = 'El contenido del email';
$headers = "From: Yo mismo <[email protected]>
MIME-Version: 1.0
Content-type: text/html; charset=utf-8";
$success = mail($to, $subject, $email_text, $headers);

Normalmente, cuando usas mail, pues pones el to, el subject, el content y te olvidas, pero en este caso debes indicar el header con un from. El problema viene con el 99.9% de los plugins o themes que ofrecen formularios de contacto, que simulan el envío de email por parte del usuario para que cuando te llegue el email, le des a un reply y listo. En Dinahosting, con hosting compartido no se puede.

Para solucionar esto es necesario hacer una chapuza enorme, cambiar el FROM de las cabeceras de wp_mail, para lo que deberemos añadir esto en nuestro functions.php:

add_filter( 'wp_mail_from', 'error_dinahosting');
function error_dinahosting($from) {
  return get_bloginfo('admin_email');
}

Puedo entender y se agradece la seguridad de Dinahosting, pero creo que esto es un error.


Volver a la Portada de Logo Paperblog