El correo electrónico de formulario HTML usando mailto en acción de formulario no funciona en Internet Explorer

Un cliente nuestro tiene una página register.html con un formulario muy simple que permite a los usuarios ingresar sus datos para registrarse en el sitio web del cliente.

La acción del formulario se establece en “mailto: clientsemail.client.com? Subject = subject”. El enctype de la página está configurado como text / plain y el método es post.

Lo que debería suceder es que el cliente de correo electrónico de los usuarios se abre con un nuevo correo electrónico, con el asunto establecido y los cuadros de texto de los formularios publicados en el cuerpo del formulario. Entonces el visitante del sitio web simplemente puede enviar el correo electrónico.

No es muy elegante, lo sé, pero es cómo lo tienen configurado.

Ahora, todo funciona como se espera y envía un correo electrónico bastante torpe a la dirección correcta utilizando el cliente de correo electrónico de los visitantes de la web, pero solo en Firefox, Chrome y Opera. Safari se bloquea completamente y el explorador de Internet abre el cliente de correo electrónico y rellena los campos de dirección y asunto, pero las entradas de formulario no se copian en el cuerpo.

¿Alguien sabe a que se debe esto? me está volviendo loco. He estado mirando todo el día y cada publicación que encuentro sobre el tema indica su configuración correcta y debería funcionar. No hay mención de que no funcione en IE.

mailto: acciones de formulario dependen de los navegadores y de los clientes de correo electrónico locales que juegan de forma agradable. Lo hacen tan raramente que las acciones de mailto: form son inutilizables en la WWW .

Reemplácelo con un progtwig del lado del servidor que envía el correo electrónico.

La etiqueta mailto solo debe aceptar los siguientes parámetros:

  1. cc=name@email.com dirección de correo electrónico de copia de carbono
  2. bcc=name@email.com dirección de correo electrónico copia oculta
  3. subject = asunto del tema sujeto al correo electrónico
  4. cuerpo = texto del cuerpo

Todos los demás parámetros de entrada se descartan (es decir, Nombre, Apellido, etc.)

Como solución alternativa, puede agregar una entrada de cuerpo oculto al formulario y completarlo con el texto que desee en el evento de envío.

Ejemplo:

       






Por alguna razón, a IE no le gusta esta opción POST al correo electrónico (funciona en FF y Chrome)

Deberías hacer algo como eso:

 function sendFormToEmail() { var inputs = $('#infoForm :input'); var bodyStr = ""; inputs.each(function(index, value) { bodyStr += value.name + " = " + value.value + " , "; }); window.location = "mailto:Example@gmail.com?subject=subject&body=" + bodyStr; } 

y en tu forma: