Para programadores:¿DESESPERADA!!Porque me salen codigos rar

Buenas,

He realizado un procedimiento en visual basic que realiza envios masivos de correos electronicos. Funciona bien y en el cuerpo del mensaje envio un codigo html.

Pero el problema es que en ocasiones hace cosas raras con el texto del cuerpo del mensaje; mete espacios dentro de una misma palabra, pone otro tipo de fuente en un trozo de texto, derepente muestra un <td>...
como puedo controlar que no haga eso?Que es lo que pasa?

Cuando genero el .eml y lo abro se ve bien, pero al enviarlo y abrirlo con el outlook como el culo

Gracias!!



P.D:

El codigo html es sencillo, en plan ;

strenlace=strenlace & "<head><head>..."

Y luego pongo BODY=strenlace y lo meto en un fichero .eml, que me lo genera perfecto, pero al recibirlo en Outlook me lo manda mal, con espacios entre palabras y así.
Sinceramente no tengo ni idea de qué puede estar pasando realmente, pero por casualidad, ¿puedes poner cómo formas la cadena que mandas finalmente? Es decir: strenlace

Imagino que habrás intentado ya inspeccionar dicha variable y ver que el valor que contiene es un código HTML bien formado, ¿no?

P.D.: Reportado para que lo muevan a PC -> General

Un saludo!
strEnlace = VACIO
strEnlace = strEnlace & "<html xmlns='http://www.w3.org/1999/xhtml'>"
strEnlace = strEnlace & "<head><meta http-equiv='Content-Type' content='text/html;'/><style type='text/css'>"
strEnlace = strEnlace & "<!--"
strEnlace = strEnlace & ".Estilo2 {font-size: 9px; font-family: Arial; }"
strEnlace = strEnlace & ".Estilo5 {font-size: 9px; color: #0033FF;font-family: Arial; }"
strEnlace = strEnlace & "-->"
strEnlace = strEnlace & "</style>"
strEnlace = strEnlace & "</head>"
strEnlace = strEnlace & "<body>"
strEnlace = strEnlace & "<table width='663' class='Estilo2'>"
strEnlace = strEnlace & "<tr>"
strEnlace = strEnlace & "<td width='136'></td><td width='515'></td></tr></table><table width='599' border='0' class='Estilo2'><tr><td width='284' height='14'></td><td width='10'></td><td width='292'><p class='Estilo5'>" & entidad & "</p></td></tr></table><table width='598' height='360' border='0' class='Estilo2'>"
strEnlace = strEnlace & "<tr><td width='283' height='356'><p>&nbsp;</p>"
strEnlace = strEnlace & "<div>"
strEnlace = strEnlace & "<p>" & strTexto1 & "</p>"
strEnlace = strEnlace & "<p align='justify'>" & strTexto2 & "</p>"
strEnlace = strEnlace & "<p>" & strTexto3 & "</p>"
strEnlace = strEnlace & "<ul>"
strEnlace = strEnlace & "<li>" & strTexto4 & "</li>"
strEnlace = strEnlace & "<li>" & strTexto5 & "</li>"
strEnlace = strEnlace & "<li>" & strTexto6 & "</li>"
strEnlace = strEnlace & "</ul>"
strEnlace = strEnlace & "</table></body></html>"

El html me lo genera bien, incluso me lo mete en un .eml que lo prepara para ser enviado, pero cuando lo envia y lo recibo, tiene cosas raras
De visual no tengo mucha idea, partimos de la base :P

En principio he pensado en las barras pero va a ser que no, una tontería vamos.

Vamos a ver, yo te aconsejo que primeramente o te muestres a ti mismo por pantalla lo que hay en esa variable para ver si está todo ok y en el caso de que veas que está todo ok "probablemente" el problema sea que envías algún caracter especial del royo @ o letras con acento etc etc(creo recordar que cualquier letra que en ascii sea mayor de 127 hay que codificarla o algo así) o directamente envías algún caracter de control. No tengo nada fresco ahora el tema de redes pero con seguridad va a ser eso. Fíjate a partir de donde faya el correo y ahí tendrás la solución a dónde está el problema. Para enviar caracteres especiales tendrás que investigar un poquito la codificación.

Tengo un programa en C que envía correos pero no puedo ni debo enviartelo por aquello de que ahora mismo solo funciona con cuentas de la autonoma de madrid y tampoco es plan de que me echen de la universidad por enviar spam desde cuentas inventandas de la universidad y saturar el servidor. Como mucho te mando por MP la función que codifica los caracteres si te interesa (está en C pero para acerte una idea de cómo se hace te vale)

Un saludo y suerte!

P.D: Qué intenciones tienes?? porque estas cosas ya sabes que son un poco ilegales :P :P

A ver con qué intenciones
El problema es que el html me lo genera bien. Es mas, me lo guarda en un fichero .eml perfectisimamente, pero es al enviar ese .eml cuando llegua mal el correo a Outlook, con lo cual no puedo saber el porque [boing] .

El .eml esta perfecto!!!POrque llega mal al outlook!!!!!! [+furioso]
No entiendo muy bien lo que te esta pasando... Reinstala el Visual Basic
mallu1983 escribió:El problema es que el html me lo genera bien. Es mas, me lo guarda en un fichero .eml perfectisimamente, pero es al enviar ese .eml cuando llegua mal el correo a Outlook, con lo cual no puedo saber el porque [boing] .

El .eml esta perfecto!!!POrque llega mal al outlook!!!!!! [+furioso]



Ya te he comentado, seguramente sea por tema de codificación, que no codificas el texto antes de enviarlo. Mira el correo que envías en modo texto plano desde algún servidor de correo ,no sé si con outlook se puede hacer y creo que en hotmail tampoco se puede.
Has comprobado que no sea porque no hayas definido la codificacion de caracteres (ASCII, UTF-8, etc)?

Puede que el Outlook interprete el texto con la tabla de caracteres incorrecta.

Saludos
Como te han dicho es un problema de codificación, por el texto en las variables strTexto un acento o cualquier cosa, outlook es muy sensible [+risas] prueba a añadir a la etiqueta html algo así :

lang="es" xml:lang="es"
Hola,

No sé si el código que has puesto es el completo de la página o es sólo un trozo del mismo. Porque si ese es todo el código HTML que formas, te aviso de que está incompleto...

<html xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <meta http-equiv='Content-Type' content='text/html;'/>
    <style type='text/css'>
      <!--
      .Estilo2 {font-size: 9px; font-family: Arial; }
      .Estilo5 {font-size: 9px; color: #0033FF;font-family: Arial; }
      -->
    </style>
  </head>
  <body>
    <table width='663' class='Estilo2'>
      <tr>
        <td width='136'></td>
        <td width='515'></td>
      </tr>
    </table>
    <table width='599' border='0' class='Estilo2'>
      <tr>
        <td width='284' height='14'></td>
        <td width='10'></td>
        <td width='292'>
          <p class='Estilo5'> & entidad &
          </p></td>
      </tr>
    </table>
    <table width='598' height='360' border='0' class='Estilo2'>
      <tr>
        <td width='283' height='356'>
          <p>&nbsp;</p>
          <div>
            <p> & strTexto1 & </p>
            <p align='justify'> & strTexto2 & </p>
            <p> & strTexto3 & </p>
            <ul>
              <li> & strTexto4 & </li>
              <li> & strTexto5 & </li>
              <li> & strTexto6 & </li>
            </ul>
          </DIV>
        </TD>
      </TR>
    </table>
  </body>
</html>


En mayúsculas tienes los cierres del div, td y tr. Espero que te sirva...

Un saludo!
9 respuestas