Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Comportamiento Diferente Entre Evolution Y Thunderbird
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Estoy haciendo una aplicación que, entre otras cosas, envía un correo electrónico a un destinatario concreto cuando pulso en un botón.

Después de solucionar el problema de la generación de los "para:", "cc:", "cco:", "asunto:", ...etc. me encuentro con que a la hora de generar el texto los cambios de línea los hago añadiendo un "\r" & "\n" es decir CR y NL.

Cuando hago la prueba en mi casa con "evolution" funciona correctamente pero cuando llego a la oficina y utilizo "thunderbird" el texto sale todo en una única línea, es decir, no inserta los CRLN.

¿alguien sabe cual puede ser el problema?.

Gracias de antemano.
 



 
jsoto61 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Hola
En windows para separar las líneas se utiliza CRLF que en gambas se corresponde con la constante gb.windows. En Unix/Linux para separar líneas se utiliza únicamente LF que se corresponde con la constante gb.unix. En Mac para separar las líneas se utiliza únicamente CR que se corresponde con gb.mac.

Si te sale en una única línea es porque no está viendo la marca que interpreta como final de línea. En una máquina si y en otra no. Tendría que mirar la rfc para mirar si hay alguna especificación sobre esto, pero me temo que no.

Yo creo que tu problema es ese aunque si ambos son linux el problema puede no ser del sistema operativo sino del software. Habría que probar a ver si evolution y thunderbird utilizan el separador de línea del sistema o el suyo propio cosa que me extrañaría mucho.

¿Por que no utilizas la clase smtpclient que es muy eficiente para estas cosas?.
La clase smtpclient

Un saludo
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
soplo escribió: [Ver mensaje]
Hola
En windows para separar las líneas se utiliza CRLF que en gambas se corresponde con la constante gb.windows. En Unix/Linux para separar líneas se utiliza únicamente LF que se corresponde con la constante gb.unix. En Mac para separar las líneas se utiliza únicamente CR que se corresponde con gb.mac.

Si te sale en una única línea es porque no está viendo la marca que interpreta como final de línea. En una máquina si y en otra no. Tendría que mirar la rfc para mirar si hay alguna especificación sobre esto, pero me temo que no.

Yo creo que tu problema es ese aunque si ambos son linux el problema puede no ser del sistema operativo sino del software. Habría que probar a ver si evolution y thunderbird utilizan el separador de línea del sistema o el suyo propio cosa que me extrañaría mucho.

¿Por que no utilizas la clase smtpclient que es muy eficiente para estas cosas?.
La clase smtpclient

Un saludo


Por fin he solucionado mi problema y para aquellos que pudieran tener el mismo ahí va la solución que he encontrado.

He comprobado que para generar un mensaje cuando haya que colocar un retorno de carro y nueva línea CRLF bastará con poner "\r" o "\n" o ambas  encadenadas, es decir "\r" & "\n"

Por el contrario cuando tengamos que hacerlo en thunderbird la solución está en insertar el comando html "<br>", que en este caso no funciona en evolution así que como la aplicación que estoy desarrollando controla que cliente de correo tienes instalado, he puesto un código que decida en función de esta condición:

IF MiCliente = "evolution" THEN
  CRLF = "\n" & "\r"
ENDIF

IF MiCliente = "thunderbird" THEN
  CRLF = "<br>"
ENDIF

y luego basta con que acabemos cada línea del texto del mensaje con el la variable CRLF. (esta solución me funciona perfectamente en casa en en la ofi)

En cuanto a lo de utilizar smtpclient tengo dos problemas, por un lado, el código al que me lleva el enlace no me funciona y no se porqué y por otro es que en mi aplicación son necesarias dos cosas, que el usuario pueda modificar el contenido del mensaje antes de enviarlo y la segunda es que le quede constancia del envío en su buzón de mensajes enviados y por ello creo que lo mejor es utilizar el cliente de correo que cada uno tenga.

De todas formas, muchísimas gracias.
 



 
jsoto61 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Yo me enfrenté al mismo problema y fuí más salomónico: En el botón de "E-Mail" de mi aplicación me limito a copiar la lista de direcciones seleccionadas en la base de datos al portapapeles y sacarle un mensaje que dice que "Las direcciones están en el portapapeles, antes de cerrar ésta pantalla, abre tu cliente de correo preferido y pulsa Ctrl+V en el campo BCC."
El texto que se lo apañen ellos...
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Hola
Citar:
el código al que me lleva el enlace no me funciona y no se porqué

Dime que es lo que no te funciona por si hay algún error, pero en lo básico eso debe funcionar (otra cosa es que se haya metido una coma donde deba haber un punto o algo pero conceptualmente está bien.

La clase smtpclient

Citar:
mi aplicación son necesarias dos cosas, que el usuario pueda modificar el contenido del mensaje antes de enviarlo y la segunda es que le quede constancia del envío en su buzón de mensajes enviados y por ello creo que lo mejor es utilizar el cliente de correo que cada uno tenga.

Te equivocas en lo de modificar el contenido del email.

Para modificar el contenido del mensaje basta con que se lo pongas por ejemplo en un textbox o un textarea o lo que sea. En ese código yo puse un string llamado cuerpo al que tu le das el valor que quieras ¿porque no puede ser un textbox.text?

Respecto a lo de que le quede en mensajes enviados
Si quieres que aparezca en mensajes enviados si que no hay otra alternativa pero te recuerdo que también dispones de cc y bcc para enviar email a otras direcciones y que están precisamente para estas cosas.

Eso de utilizar los navegadores (a los que puedes accder por gb.desktop) a mi me parece una solución mucho peor y mas pesada pero bueno ...

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Reduciendo un poco tu ejemplo en "La Clase SMTP"
PUBLIC SUB Form_Open()

  DIM Correo AS SmtpClient
  DIM CRLF AS String
  DIM CuerpoEmail AS String
  DIM EmailOrigen AS String
  DIM EmailDestino AS String
  DIM Host AS String
  DIM Puerto AS String
  DIM Asunto AS String
  DIM Cuerpo AS String
  DIM Adjunto AS String

  EmailOrigen = "EmailDelSistema@aplicación.com"
  Host = "localhost"
  Puerto = 25
  CRLF = Chr(13) & Chr(10)
  Asunto = "este es el asunto del email"
  EmailDestino = "midireccion@correo.com"  'aquí pongo una dirección válida

  Correo = NEW SmtpClient
  correo.from = EmailOrigen
  correo.host = host
  correo.port = puerto
  correo.subject = asunto
  correo.smtp.to.add = EmailDestino '(*)

  Cuerpo = "*****************************" & CRLF
  Cuerpo &= "" & CRLF
  Cuerpo &= "" & Format(Now, "dd/mm/yyyy") & CRLF
  Cuerpo &= "" & CRLF
  Cuerpo &= "*****************************" & CRLF
  Cuerpo &= "Este es un emal automático. No lo responda pues nadie lo leerá." & CRLF
  Cuerpo &= "Un saludo"
  correo.add(Cuerpo)

  correo.send

END
 


Me canta un error
Citar:
"Unknown symbol 'smtp' in class 'SmtpClient'
en la línea que he marcado con (*)

Por cierto también me daba un error en Mime=text/plain" porqué supongo que le falta una doble comilla delante del text, pero para abreviar esta línea de código me la he saltado.

sustituí la línea que daba error por esta otra:

correo.to.add(EmailDestino)
 


inicialmente la última línea de código eran:

try correo.send
catch
message.error("No se pudo enviar el mensaje")
 


 y en estas condiciones no pasaba nada y quité el try-catch para ver que error me daba:

Citar:
Connection to mailserver failed while connecting to STMP server (SMTP error code #0)


Y esto para mi ya es un callejón sin salida.

Saludos.
 



 
última edición por jsoto61 el Sabado, 28 Noviembre 2009, 03:46; editado 3 veces 
jsoto61 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
Efectivamente el método va como lo has puesto. La línea debería ser
correo.to.add=EmailDestino


Citar:
Connection to mailserver failed while connecting to STMP server (SMTP error code #0)

Eso es porque no has puesto bien el host o porque ese server en vez del puerto 25 usa otro puerto que tendrás que especificar en port. En el ejemplo propuesto host es localhost asumiento que el servidor smtp es la propia máquina pero tu ahí tendrás que poner el smtp que corresponda que puede ser localhost o no.

Lo del text/plain efectivamente un string va entre comillas y le faltaba una
mime="text/plain"

 
 



 
última edición por soplo el Sabado, 28 Noviembre 2009, 14:59; editado 2 veces 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
soplo escribió: [Ver mensaje]
Efectivamente el método va como lo has puesto. La línea debería ser
correo.to.add=EmailDestino


Citar:
Connection to mailserver failed while connecting to STMP server (SMTP error code #0)

Eso es porque no has puesto bien el host o porque ese server en vez del puerto 25 usa otro puerto que tendrás que especificar en port. En el ejemplo propuesto host es localhost asumiento que el servidor smtp es la propia máquina pero tu ahí tendrás que poner el smtp que corresponda que puede ser localhost o no.

Lo del text/plain efectivamente un string va entre comillas y le faltaba una
mime="text/plain"

 


No entiendo, ¿tengo que  instalar algún servidor smtp en mi equipo?.
y en caso afirmativo, ¿como hago eso?.

Gracias.
 



 
jsoto61 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
No no. No tienes que instalar un servidor smtp en tu equipo.
Hay quien se quiere instalar uno porque quiere un servidor de correo y su aplicación debe manejar correos. en ese caso el servidor de correo será localhost, pero otras muchas veces el servidor de correo será otra máquina de algún servicio de hosting o lo que sea.

En ese caso tu programa lo que tiene que hacer es enviar ese email a esa máquina para que lo haga.

eso mismo ocurre con mozilla, firefox o el que sea. No puedes enviar correo si en la configuración de la cuenta no es especificado en smtp. firefox lo que hace es enviar ese email a esa maquina.

Así que tu en host tienes que poner el nombre o ip del smtp.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comportamiento Diferente Entre Evolution Y Thunderbird 
 
soplo escribió: [Ver mensaje]
No no. No tienes que instalar un servidor smtp en tu equipo.
Hay quien se quiere instalar uno porque quiere un servidor de correo y su aplicación debe manejar correos. en ese caso el servidor de correo será localhost, pero otras muchas veces el servidor de correo será otra máquina de algún servicio de hosting o lo que sea.

En ese caso tu programa lo que tiene que hacer es enviar ese email a esa máquina para que lo haga.

eso mismo ocurre con mozilla, firefox o el que sea. No puedes enviar correo si en la configuración de la cuenta no es especificado en smtp. firefox lo que hace es enviar ese email a esa maquina.

Así que tu en host tienes que poner el nombre o ip del smtp.


Pero entonces, en mi caso que no tengo ningún servidor de correo instalado pongo en host ="localhost" pero ¿que puerto pongo?
 



 
jsoto61 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Thunderbird, Problema De Espacio Entre Lí... Shell Mundo Linux 10 Sabado, 10 Septiembre 2016, 20:46 Ver último mensaje
shordi
No hay nuevos mensajes ¿Como Leer El Correo De Un Servidor Remot... tincho Mundo Linux 2 Sabado, 20 May 2017, 13:35 Ver último mensaje
Shell
No hay nuevos mensajes Un Reloj Un Po' Diferente... vuott Aplicaciones/Fragmentos de Código 3 Martes, 19 Julio 2016, 10:28 Ver último mensaje
vuott
No hay nuevos mensajes Diferente Informacion Para Un Mismo Formul... Furiwel Controles/Librerías/Componentes 7 Viernes, 16 Abril 2010, 04:53 Ver último mensaje
chen_08
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario