Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/10/2013, 15:42
Avatar de ASDRUBAL2112
ASDRUBAL2112
 
Fecha de Ingreso: septiembre-2013
Mensajes: 12
Antigüedad: 11 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Formateo de emails

Cita:
Iniciado por cesparza Ver Mensaje
A ver si planteo bien mi problema.

Cuando recibo un email desde mi pagina web aspx, el texto que el usuario ha escrito en el cuadro de texto, llega sin formatear, es decir, sin presentar en pantalla los saltos de linea que el usuario haya utilizado dentro del cuadro de texto.
Llega todo en una linea plana.

Me gustaria saber de una vez, como solicionar eso, evidentemente la linea mail.IsBodyHtml esta puesta en true, pero no hablo de eso ni es un problema de html.
En ASP clásico era muy facil hacerlo y formatear lo que recibes, ya que se añadia esta linea "<%= replace(rs ("otros"),chr(10),"<br>") %>" y lo que escribe un usuario llega formateado tal y como lo ha escrito el usuario, con sus vueltas de carro y lineas de separación si las ha puesto.

Este es el código que tengo escrito, el email llega correctamente, lo unico que no se formatear es esa parte, os pongo copia del codigo en VB, y por favor constadme con codigo VB y no C+.

Protected Sub EnviarUsuario_Click(sender As Object, e As EventArgs) Handles EnviarUsuario.Click
If Page.IsValid Then
Dim mail As New MailMessage()
Dim Direccion As String = "[email protected]"
Dim mailserver As String = "mail.xxx.xx"
Dim smtp As New SmtpClient(mailserver)
Dim body As String = "<h3>CONTACTO USUARIO DESDE xxxxxx (versi&oacute;n Castellano)</h3>" & _
"<b>Nombre:</b> " & Server.HtmlEncode(Nombre.Text) & "<br />" & _
"<b>Apellidos:</b> " & Server.HtmlEncode(Apellidos.Text) & "<br />" & _
"<b>Tel&eacute;fono de Contacto:</b> " & Server.HtmlEncode(Telefono.Text) & "<br />" & _
"<b>Email:</b> " & Email.Text & "<br />" & _
"<b>Localidad:</b> " & Server.HtmlEncode(Localidad.Text) & "<br />" & _
"<b>C&oacute;digo Postal:</b> " & Server.HtmlEncode(CodigoPostal.Text) & "<br />" & _
"<b>Provincia:</b> " & Server.HtmlEncode(Provincia.Text) & "<br />" & _
"<b>Como nos ha conocido:</b> " & Seleccion.Text & "<br />" & _
"<b>Consulta:</b><br />" & Server.HtmlEncode(Consulta.Text)
smtp.Port = 587
smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "xxxxxxxx")
smtp.EnableSsl = False

mail.To.Add(Direccion)
mail.From = New MailAddress(Email.Text)
mail.Subject = "Contacto Usuario"
mail.IsBodyHtml = True
mail.Body = body
smtp.Send(mail)
usuarios()
Response.Redirect("contactoOk.aspx?Page=contactOk" )
Else
lblError1.Text = "Ha ocurrido un Error. Por favor int&eacute;ntelo de nuevo."
End If
End Sub

Gracias de antemano por vuestras respuestas.

Hola, si te entendí bien, lo que tú deseas es darle formato al mensaje que envías,si es ese el problemilla, la manera en que lo hago es así:

Parte 1.-

'/*Método que envía email de confirmación de la pre-reserva*/
Public Sub EnviarEmailConfirmacion(ByVal strIdcita As String, _
ByVal strEmail As String, _
ByVal strFechayHora As String)
Try

Dim objSmtp As New SmtpClient()
objSmtp.Host = "s28212.gridserver.com"
objSmtp.Port = 25
objSmtp.EnableSsl = True

Dim objEmail As New MailMessage()
objEmail.To.Add(strEmail) ' Correo a quien va dirigido
'objEmail.CC.Add("[email protected]" & "," & "[email protected]")
objEmail.From = New MailAddress("[email protected]", "titulo")
objEmail.Priority = MailPriority.High
objEmail.Subject = "Confirmación:Reserva."
objEmail.IsBodyHtml = True
objEmail.Body = BuildMessage(strIdcita, strFechayHora)

Dim Credenciales As New System.Net.NetworkCredential()
Credenciales.UserName = "[email protected]"
Credenciales.Password = "password1"

objSmtp.DeliveryMethod = SmtpDeliveryMethod.Network
objSmtp.EnableSsl = True
objSmtp.UseDefaultCredentials = False
objSmtp.Credentials = Credenciales
objSmtp.Send(objEmail)

Catch ex As Exception
'lblErrorEmail.Text = ex.Message
Exit Sub
End Try
End Sub



Parte 2.-

Function BuildMessage(ByVal strIdcita As String, _
ByVal strFechayHora As String) As String

Dim strMessage As New StringBuilder
strMessage.Append("<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">")
strMessage.Append("<html>")
strMessage.Append("<head>")
strMessage.Append("<title>PAGINA CITA</title>")
strMessage.Append("<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"">")
strMessage.Append("<style type=""text/css"">")
strMessage.Append("<!--")
strMessage.Append(".basix {")
strMessage.Append("font-family: Verdana, Arial, Helvetica, sans-serif;")
strMessage.Append("font-size: 12px;")
strMessage.Append("}")
strMessage.Append(".header1 {")
strMessage.Append("font-family: Verdana, Arial, Helvetica, sans-serif;")
strMessage.Append("font-size: 12px;")
strMessage.Append("font-weight: bold;")
strMessage.Append("color: #FFFFFF;")
strMessage.Append("}")
strMessage.Append(".tlbbkground1 {")
strMessage.Append("background-color: #01ADA1;")
strMessage.Append("}")
strMessage.Append("-->")
strMessage.Append("</style>")
strMessage.Append("</head>")
strMessage.Append("<body>")
strMessage.Append("<table width=""85%"" border=""0"" align=""center"" cellpadding=""5"" cellspacing=""1"" class=""tlbbkground1"">")
strMessage.Append("<tr bgcolor=""#01ADA1"">")
strMessage.Append("<td colspan=""2"" class=""header1"">Información de la pre-reserva</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
'strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#eeeeee"" class=""header1"" nowrap>IP ADRESS</td>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Paciente</td>")
'strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & Request.ServerVariables("REMOTE_ADDR") & "</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & txtNom.Text & " " & txtApePat.Text & " " & txtApeMat.Text & "</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
'strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#eeeeee"" class=""header1"" nowrap>User Agent</td>")
'strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & Request.LogonUserIdentity.Name() & "</td>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>E-Mail</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & txtEmail.Text & "</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Teléfono</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & txtTlf.Text & "</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Celular</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & txtCel.Text & " </td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Fecha y Hora</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & strFechayHora & "</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Doctor</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & lblDoctor.Text & "</td>")
strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Especialidad</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & lblEspe.Text & "</td>")
strMessage.Append("</tr>")
'strMessage.Append("<tr>")
'strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Turno</td>")
'strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix"">" & lblTurno.Text & "</td>")
'strMessage.Append("</tr>")
strMessage.Append("<tr>")
strMessage.Append("<td width=""100"" align=""right"" bgcolor=""#01ADA1"" class=""header1"" nowrap>Link pre - reserva</td>")
strMessage.Append("<td bgcolor=""#FFFFFF"" class=""basix""> <a style= color:""#FF0000""; font-size: ""13px""; font-weight: ""bold""; href=http://www.google.com> Confirmar_reserva </td>")

strMessage.Append("</tr>")
strMessage.Append("</table>")
strMessage.Append("</body>")
strMessage.Append("</html>")
Return strMessage.ToString

End Function