Problemilla de codificacion con vSendMail


([N4] José A. Martínez) #1

Hola. Estoy probando vSendMail, y me he encontrado un pequeño problema: haciendo un test, al enviar un asunto con tildes (almacenado en una var local alfabetica) me sale mal… me cambia la ó por una s… (en Microsoft Outlook).

Me sucede lo mismo en el asunto y en el cuerpo…

en concreto la secuencia de letras
á é í ó ú ü ñ
me la muestra como
a i m s z | q

Alguna idea antes de que empiece a hace cambios a bulto?. Se me da mal lo de las codificaciones…

Gracias por anticipado…


([N3] pacosatu) #2

Hola José.

¡Hombre! no es un problemilla, es un problemazo de los gordos.

Tendrás que depurar la aplicación, ¡UY! perdón, que Velneo no tiene depurador, tendrás que hacer un seguimiento del código y localizar en qué punto el String del Asunto o del Cuerpo se envían al comando sendmail.

Allí deberá haber una función del tipo
stringToAscii(ASUNTO,“UTF-8”)
stringToAscii(CUERPO,“UTF-8”)

La codificación debe ir siempre en UNICODE

Saludos
Paco Satué


([N4] José A. Martínez) #3

Hum…

Al mirar el código del mensaje que recibo en Outlook, me he encontrado esto
charset=“us-ascii”

Si no me equivoco, ahí debería poner “us-latin1” o charset=“ISO-8859-1”… que es la que usa Velneo en las variables alfabéticas (o no?)…

¿Cómo puedo cambiar la codificación con que envía vSendMail? Ya me extraña que solo tenga yo este problema…

@Paco

He trazado las llamadas al sendmail.exe… en el punto mas cercano a la llamada he puesto stringToAscii(PARAMS,“UTF-8”)…
Ahora me transforma
á é í ó ú ü ñ
en
C?B! C?B) C?B- C?B3 C?B: C?B< C?B1

Pero en código del mensaje me sigue saliendo
charset=“us-ascii”

He mirado un correo que me muestra correcto el Outlook, y pone algo como
text/plain; charset=“ISO-8859-1”
y en los incorrectos que yo mando
multipart/mixed; boundary=“70BhaQ+0B7hktL0e”; charset=“us-ascii”

No se, menudo rollo. Antes de meterme con los ficheros adjuntos me gustaría controlar a fondo el envio de correos con cuerpos de texto, pero se ve que esto no es sencillo (manda huevos)…

¿No hay forma de decirle al sendmail.exe que voy a mandar “ISO-8859-1”?

¿Algun experto en vSendMail? Socorro… que ya me veo trabajando solo con adjuntos…

Gracias a todos…


([N3] pacosatu) #4

Hola José.

Creo que la Open App no usa la opción -cs (character set)

Añade simplemente la opción
-cs “ISO-8859-1”
a los parámetros del comando mailsend.exe y olvídate de la función stringToAscii().

Pruébalo
Saludos
Paco Satué


([N4] sat) #5

Hola:

A nosotros vSendMail nos funciona correctamente incluyendo acentos, así que quizás el problema esté en otra parte. ¿Estás utilizando la última versión?

Un saludo.


([N4] José A. Martínez) #6

Lo primero, uso la versión de sendmail.exe 1.17b4 incrustada en vSendMail 1.1

Por otro lado, VCERVEZA PARA PACO… Y LAS CORRESPONDIENTES GRACIAS, CLARO…

En mitad del proceso de envio, después de que vSendMail meta los parámetros del sendmail.exe, he incrustado esta línea

Set(PARAMS, fun:SET_PARAM@IncidenciasMail.dat(PARAMS, “-cs”, “\c” + “ISO-8859-1” + “\c”) )

y voila, problema resuelto…

Parece que el tema de los mensajes con cuerpo ASCII esta resuelto…

Ahora me toca con cuerpos HTML…

Gracias por estar ahí…


([N3] pacosatu) #7

Hola José.

Me alegro que haya funcionado.
Es mejor que pruebes antes todas las opciones de sendmail.exe desde una ventana de comandos. Una vez comprobado que funciona de esta manera, te aseguras que el script que genera la Open App es el correcto.

La regla es: si funciona en la ventana de comandos, debe funcionar desde el vClient, y esto para cualquier utilidad de comandos y en cualquier sistema operativo.

Saludos
Paco Satué