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

[SOLUCIONADO] Formateo de emails

Estas en el tema de Formateo de emails en el foro de ASPX (.net) en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 21/10/2013, 13:43
Avatar de cesparza  
Fecha de Ingreso: marzo-2013
Ubicación: Barcelona
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Formateo de emails

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.
  #2 (permalink)  
Antiguo 22/10/2013, 15:42
Avatar de ASDRUBAL2112  
Fecha de Ingreso: septiembre-2013
Mensajes: 12
Antigüedad: 10 años, 6 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
  #3 (permalink)  
Antiguo 23/10/2013, 12:50
Avatar de cesparza  
Fecha de Ingreso: marzo-2013
Ubicación: Barcelona
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: Formateo de emails

Perfectisimo, muchisimas gracias y mira que llevo meses detras de algo asi, y nadie me habia contestado tan claro, ya puse otro mensaje sobre lo mismo y solo recibia contestaciones del tipo, "Ponlo en HTML" y tonterias varias obvias por el estilo.

Un saludo
  #4 (permalink)  
Antiguo 23/10/2013, 14:02
Avatar de ASDRUBAL2112  
Fecha de Ingreso: septiembre-2013
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Formateo de emails

No hay de que, y como dice ese viejo y conocido refrán: "El que la sigue, la consigue..."

Etiquetas: asp, emails, formateo, net, text
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 22:49.