Question Form sends incomplete email

alberto.alvarado

New member
Joined
Apr 2, 2009
Messages
1
Programming Experience
1-3
I need some help with a form I have on my web portal. This is a very simple form. The user fills in the form, then sends it to an email address. The problem is that some users aren't receiving the form correctly. All the fields are empty. The rest of the email is right, but the values are empty. As I said this happens only with a very few user, and I don't know if there is a problem with my form or Outlook is blocking in some way the content of the message.

Any help will be greatly appreciated.

Here is the code that manages the form content:

VB.NET:
Imports system.Net.Mail
Imports DotNetNuke
Imports System.Web.UI
Imports System.Collections.Generic
Imports System.Reflection
Imports DotNetNuke.Security.PortalSecurity

'Fecha: 29/05/2007
'Creado por: Laura Corrales.
'Modificado por: Antonio Sánchez Ruano.

Partial Class DesktopModules_Certificados_Certificados

    'Variables Globales.
    Inherits Entities.Modules.PortalModuleBase
    Dim tablatemp As DataTable

    'Proceso de carga de la pagina donde se asigna la fecha del sistema al campo de fecha de solicitud.
    Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtfecha_sol.Value = Today.Date
    End Sub

    'Proceso para enviar la solicitud del certificado.
    Protected Sub Enviar_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Enviar.ServerClick

        'Variables para las sentencias SQL.
        Dim Sql_Sol_Vac As New StringBuilder()
        Dim Sql_Det_Sol_Vac As New StringBuilder()

        'Variables
        Dim tipo_certificado As String
        Dim validar As New String("ok")
        Dim dia, mes, ano, fecha_actual As String
        Dim diad, mesd, anod, diah, mesh, anoh As String

        'Recogemos la opción seleccionada.
        If RadioButton1.Checked Then
            tipo_certificado = RadioButton1.Text
        ElseIf  RadioButton2.Checked Then
            tipo_certificado = RadioButton2.Text
        ElseIf RadioButton3.Checked Then
            tipo_certificado = RadioButton3.Text
        ElseIf RadioButton4.Checked Then
            tipo_certificado = RadioButton4.Text
        ElseIf RadioButton5.Checked Then
            tipo_certificado = RadioButton5.Text
        ElseIf RadioButton6.Checked Then
            tipo_certificado = RadioButton6.Text
        ElseIf RadioButton7.Checked Then
            tipo_certificado = RadioButton7.Text
        Else
            tipo_certificado = Me.motivo.Value.ToString
        End If

        'Extraemos el día, mes y año de la fecha del sistema.
        dia = Today.Day
        mes = Today.Month
        ano = Today.Year
        fecha_actual = dia + "/" + mes + "/" + ano

        'Comprobamos si los campos están vacíos
        If txtDesde.Text = "" Or txtHasta.Text = "" Then
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Por favor, introduzca un valor en el campo vacio.');", True)
            validar = "ko"
            Exit Sub

            'Extraemos dia, mes y año de la fecha desde y hasta para validar posibles errores.
        Else
            'para la fecha desde
            diad = txtDesde.Text.Substring(0, 2)
            mesd = txtDesde.Text.Substring(3, 2)
            anod = txtDesde.Text.Substring(6, 4)

            'para la fecha hasta
            diah = txtHasta.Text.Substring(0, 2)
            mesh = txtHasta.Text.Substring(3, 2)
            anoh = txtHasta.Text.Substring(6, 4)

            ' Validamos las fechas introducidas.
            If (mesh > mesd And anoh > anod) Or (mesh = mesd And diah < diad) Or (mesd > mesh And anod = anoh) Or anod > anoh Then
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Por favor, introduzca una fecha correcta.');", True)
                validar = "ko"
                Exit Sub
            End If

            ' Validamos los dias de cada mes.
            'mes de la fecha desde.
            If mesd = "04" Or mesd = "06" Or mesd = "09" Or mesd = "11" Then 'para los meses que tienes 30 días de la fecha desde.
                If diad > 30 Then
                    Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Error: El mes indicado en el inicio de vacaciones debe tener como maximo 30 dias.');", True)
                    txtDesde.Focus()
                    validar = "ko"
                    Exit Sub
                End If
            ElseIf mesd = "02" Then 'para el caso de febrero.
                If diad >= 29 Then
                    Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Error: El mes indicado en el inicio de vacaciones debe tener como maximo 28 dias.');", True)
                    txtDesde.Focus()
                    validar = "ko"
                    Exit Sub
                End If
            End If

            'mes de la fecha hasta.
            If mesh = "04" Or mesh = "06" Or mesh = "09" Or mesh = "11" Then 'para los meses que tienes 30 días de la fecha hasta.
                If diah > 30 Then
                    Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Error: El mes indicado en el final de vacaciones debe tener como maximo 30 dias.');", True)
                    txtHasta.Focus()
                    validar = "ko"
                    Exit Sub
                End If
            ElseIf mesh = "02" Then 'para el caso de febrero.
                If diah >= 29 Then
                    Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Error: El mes indicado en el final de vacaciones debe tener como maximo 28 dias.');", True)
                    txtHasta.Focus()
                    validar = "ko"
                    Exit Sub
                End If
            End If

            ' Validamos si la fecha introducida es anterior a la de hoy.
            If txtDesde.Text < Today.Date Then
                Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('Error: La fecha inicial no puede ser anterior a hoy.');", True)
                txtDesde.Focus()
                validar = "ko"
                Exit Sub
            End If
        End If

        'Si todas las validaciones están OK creamos la fila.
        If validar = "ok" Then

            'Generamos el e-mail para rrhh.
            'Variables para el e-mail.
            Dim oTo As New String(Me.txtcorreo.Value.ToString())
            Dim oFrom As New String(Me.UserInfo.Email)
            Dim oCC As New String("")
            Dim oSubject As New String("Solicitud Permiso ")
            Dim oBody As New String("")

            'Generamos el cuerpo del e-mail.
            oBody = "<html xmlns:o><body><table width='60%' border='0' align='center' bgcolor='#D8F9D5'> "
            oBody = oBody + "<tr><td> </td></tr><tr><td><div align='center'><table cellspacing='0' "
            oBody = oBody + "bgcolor='#339900' cellpadding='0'><tr><td> </td></tr><tr><td width='600px' "
            oBody = oBody + "align='center'><font color='#FFFFFF' face='Arial'><b>SOLICITUD DE PERMISOS</b>"
            oBody = oBody + "</font></td></tr><tr><td> </td></tr></table></div></td></tr><tr><td> </td>"
            oBody = oBody + "</tr><tr><td><table cellspacing='0' cellpadding='0' align='center' border='0'><tr>"
            oBody = oBody + "<td width='35%' align='right'><font face='Arial'><strong>Tipo de Permiso:</strong>"
            oBody = oBody + "</font></td><td>"
            oBody = oBody + "<input value='" + tipo_certificado.ToString + "' style='width:370px; border:none'/>"
            oBody = oBody + "</td></tr><tr><td width='35%' align='right'><font face='Arial'><strong>Correo:</strong>"
            oBody = oBody + "</font></td><td>"
            oBody = oBody + "<input value='" + Me.txtcorreo.Value.ToString + "' style='width:370px; border:none'/>"
            oBody = oBody + "</td></tr><tr><td width='35%' align='right'><font face='Arial'><strong> </strong>"
            oBody = oBody + "</font></td><td> </td></tr><tr><td width='35%' align='right'><font face='Arial'>"
            oBody = oBody + "<strong>Fecha de Solicitud:</strong></font></td><td>"
            oBody = oBody + "<input value='" + Me.txtfecha_sol.Value.ToString + "' style='width:80px; border:none; text-align:center'/>"
            oBody = oBody + "</td></tr><tr><td width='35%' align='right'><font face='Arial'><strong>Desde:</strong>"
            oBody = oBody + "</font></td><td>"
            oBody = oBody + "<input value='" + Me.txtDesde.Text.ToString + "' style='width:80px; border:none; text-align:center'/>"
            oBody = oBody + "</td></tr><tr><td width='35%' align='right'><font face='Arial'><strong>Hasta:</strong>"
            oBody = oBody + "</font></td><td>"
            oBody = oBody + "<input value='" + Me.txtHasta.Text.ToString + "' style='width:80px; border:none; text-align:center'/>"
            oBody = oBody + "</td></tr></table></td></tr><tr><td> </td></tr></table></body></html>"

            'Creamos un objeto Email para enviarlo.
            Dim oEmail As New MailMessage(oFrom, oTo, oSubject, oBody)
            oEmail.IsBodyHtml = True
            oEmail.Priority = MailPriority.High

            Try

                'Creamos el objeto para enviar el e-mail.
                Dim ocliente As New System.Net.Mail.SmtpClient

                'Configuramos el host.
                ocliente.Host = "mail.mnemo.com"

                'Enviamos el e-mail.
                ocliente.Send(oEmail)

            Catch excmail As Exception

                'En caso de que se produzca un error al enviar el e-mail, mostramos un mensaje.
                Response.Write("Error: El envio del e-mail ha fallado por que " + excmail.ToString())

            End Try

            'Si todo ha funcionado correctamente se muestra un mensaje.
            Page.ClientScript.RegisterStartupScript(Me.GetType(), "MyMessageBoxScript", "alert('La Solicitud del Permiso ha sido gestionada satisfactoriamente.');", True)

        End If

    End Sub

End Class
 
Back
Top