Foros del Web » Programando para Internet » ASPX (.net) »

como hago para conservar los saltos de linea cuando envio email ?

Estas en el tema de como hago para conservar los saltos de linea cuando envio email ? en el foro de ASPX (.net) en Foros del Web. Hola amigos Tengo una duda que me quita el sueño... Yo tengo hecho mi formulario de enviar mails, e inserto lo que seria el body, ...
  #1 (permalink)  
Antiguo 31/08/2006, 15:45
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
como hago para conservar los saltos de linea cuando envio email ?

Hola amigos

Tengo una duda que me quita el sueño...

Yo tengo hecho mi formulario de enviar mails, e inserto lo que seria el body, en un textbox multilinea ... luego al presionar el boton enviar... mete el contenido del texbox en una variable string, y lo envia con el metodo SmtpMail.Send(mimensage)

El tema esta en que el cuerpo del mensaje llega al destinatario todo en una sola linea
como hago para que me respete los " enter "
Gracias !!!
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !
  #2 (permalink)  
Antiguo 31/08/2006, 18:38
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
Ya lo solucione, es un poquito rebuscado pero quedo bien. al que le interese, me pregunta y me pongo en la tarea de explicar.
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !
  #3 (permalink)  
Antiguo 01/09/2006, 02:54
 
Fecha de Ingreso: enero-2005
Ubicación: Benifaió (Valencia)
Mensajes: 319
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues a mi me interesa, ya que tengo el mismo problema xD

Gracias de antemano.
  #4 (permalink)  
Antiguo 01/09/2006, 04:09
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
a mi esto me pasab según con que cliente de correo abría el mail.

Otra más que le interesa la solución :p


saludos
  #5 (permalink)  
Antiguo 01/09/2006, 14:49
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
bueno, ok paso a explicar

Tenemos que enviar nuestro e-mail con formato html
lo que hacemos es en primer lugar es recorrer el contenido de nuestro textbox multilinea, para reconocer las lineas que tiene, luego meteremos cada linea en una cadena, y por ultimo recorreremos esas cadenas en busca de espacios en blanco; ya que esto ultimo, nos ayudara a mantener el formato del text, es decir si escribimos una palabra en el medio del textbox... pues saldra en e medio en nuestro mail.

Luego de todos esos recorridos, lo que aremos es meter nuestras cadenas en un string builder, con apends formatados para que cada una represente una nueva linea...

Lo de recorrer el contenido del texto y devolver las lineas que contiene, lo logramos con la funcion split() que tiene 2 parametros, el contenido del texbox directamente tomado desde el contenedor osea "me.mitextbox.text" y un caracter especial. Nuestro caracter especial que representa el salto de carro en vb.net es " vbCrLf ", esta funcion devuelve un array de strings asi que crearemos un array de strings para almacenar esto; que luego recorreremos.

luego de todo eso, montaremos el body de nuestro e-mail y lo enviaremos.

el codigo fuente es el siguiente:

Código PHP:

        Dim mesnsage 
As New MailMessage()
        
Dim htmbody As New System.Text.StringBuilder()
        
Dim body As New System.Text.StringBuilder()
       
// aqui es donde exploramos el contenido de nuestro textbox y devolvemos un array de strings.

        
Dim a() As String Split(Me.txtbody.TextvbCrLf)

       
Dim x As Integer 0
        Dim i 
As Integer 0

        
For LBound(aTo UBound(a)

            
With body

                
If a(i) = "" Then
//si la cadena es un renglon en blanco, pues agregamos ese renglon en blanco.                  
  
.Append("<p style='margin-top: 0; margin-bottom: 0'>&nbsp;</p>")

                Else

                    
Dim cadena As String Nothing
                    Dim caux 
As String Nothing
                    caux 
a(i)
                   
                         For 
0 To (caux.Length 1)
// preguntamos si hay espacios, y si hay los agregamos tambien a nuestro stringbuilder

                        
If caux.Chars(x) = " " Then
                            cadena 
cadena "&nbsp;"
                        
Else
                            
cadena cadena caux.Chars(x)
                        
End If
                    
Next
//aqui es donde agregamos el resultado de la exploracion, una nueva linea con todos los espacios y el texto 
                    
.Append("<p style='margin-top: 0; margin-bottom: 0'>" cadena "</p>")

                
End If

                         
End With
 Next

//ahora empezamos a construir nuestro mail

         
Dim tfrom As String "[email protected]"
         
Dim tomesich As String Me.txtto.Text.Trim

        Dim subj 
As String "asunto del mensaje"

 
With htmbody

 
.Append("<html>")
 .
Append("<head> ")
 .
Append("<meta name='ProgId' content='FrontPage.Editor.Document'>")
 .
Append("<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>")
 .
Append("<title>Correo Electonico Autogenerado </title>")
 .
Append("</head>")
 .
Append("<body>")
 .
Append("<p style='margin-top: 0; margin-bottom: 0'>&nbsp;</p>")

 .
Append(body.ToString)  // y aqui va nuestro contenido del mail 

 
.Append("<p style='margin-top: 0; margin-bottom: 0'>&nbsp;</p>")
 
.
Append("</body>")
.
Append("</html>")

  
End With
// enviando el mail
Try
            
With mesnsage
                
.BodyFormat MailFormat.Html
                
.Body htmbody.ToString
                
.From tfrom
                
.Subject subj
                
.To tomesich
                
            End With

            SmtpMail
.SmtpServer "smtp.algunservidor.com"
            
SmtpMail.Send(mesnsage)
        Catch 
err As HttpCompileException
            Response
.Redirect("errormail.html")
        Catch 
err As HttpException
            Response
.Redirect("errormail.html")
        
End Try
        
Response.Redirect("enviado.html"
y eso seria todo, lo unico que faltaria es meter este codigo dentro de un boton y agregarle los textbox y listo.

espero que sirva
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !

Última edición por juanpablomonte; 02/09/2006 a las 08:30
  #6 (permalink)  
Antiguo 01/09/2006, 14:58
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
lo que necesitaria ahora es saber si alguien sabe como usar un servidor smtp autenticado con nombre de usuario y passwor, ami me pasa que no puedo enviar emails fuera del dominio por que mi smtp requiere usuario y pass, alguien me puede hechar una mano en eso?

uso la version 2002 de vis.net
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !

Última edición por juanpablomonte; 01/09/2006 a las 15:13
  #7 (permalink)  
Antiguo 02/09/2006, 07:34
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
ya lo solucione !!! hice algo que manda mails sin importar la version del framework que hallla.
pero es otra solucion larga, si a alguien le interesa pregunte y explico.

espero que todo esto le sirva a alguien... chauuu
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !

Última edición por juanpablomonte; 02/09/2006 a las 08:22
  #8 (permalink)  
Antiguo 02/09/2006, 08:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 101
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo

Echale un ojo:

http://www.webprogramacion.com/registro.aspx?id=50

Última edición por dvelazquez; 08/08/2007 a las 02:23
  #9 (permalink)  
Antiguo 02/09/2006, 10:58
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 9 meses
Puntos: 0
gracias !!!, te agradezco el dato !!

esta bueno.pero es para una determinada version de framework que traiga la librería system.net.NetworkCredential.
En la que tengo yo no esta, pues es viejita (pero compatible desde win98 en adelante... trabajo con vis.net 2002) pero de todos modos ya lo solucione, cree una funcion, que es compatible para cualquier version de framework, y que no depende de ninguna librería especifica mas que la de system.web

Si alguien la necesita me avisa.. pues es medio larga.
__________________
Facil ! Lo unico que hay que hacer para no ser animal, es razonar !
  #10 (permalink)  
Antiguo 24/11/2008, 13:31
 
Fecha de Ingreso: septiembre-2008
Mensajes: 2
Antigüedad: 15 años, 8 meses
Puntos: 0
Pregunta Pregunta

man soy novato novato en esto de programcion me gustaria que me dieras una breve explicacion del como recorrer una cadena y detenerme hasta que encuentre el primer espacio, me explico seria algo asi
Carlos De La Cruz
y el resultado seria Carlos(Sin el espacio) vi algo parecido en tu codigo con los espacios y eso de ante mano muchas gracias por todo
  #11 (permalink)  
Antiguo 24/11/2008, 15:00
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: como hago para conservar los saltos de linea cuando envio email ?

solo haz un simple

string dato="carlo de la cruz"

si quieres separarlos por espacio

string [] datos=dato.Split(' ');

si fuece vb.net cambia solo un poco la sintaxis pero es la misma funcion.

asi datos[0] tendrias carlos y asi subsecuentemente.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.