Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/09/2006, 14:49
juanpablomonte
 
Fecha de Ingreso: julio-2005
Ubicación: Córdoba
Mensajes: 254
Antigüedad: 18 años, 10 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