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.Text, vbCrLf)
Dim x As Integer = 0
Dim i As Integer = 0
For i = LBound(a) To 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'> </p>")
Else
Dim cadena As String = Nothing
Dim caux As String = Nothing
caux = a(i)
For x = 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 & " "
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'> </p>")
.Append(body.ToString) // y aqui va nuestro contenido del mail
.Append("<p style='margin-top: 0; margin-bottom: 0'> </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