none
Substituir Texbox.text por Variavel RRS feed

  • Pergunta

  • Olá pessoal estou fazendo uma opção de gerar emails automaticos de um formulário de Chamados. Tenho esse código que pega o valor do campo email da tabela Parametros, envia para um textbox, e assim envia o email. Gostaria de saber se teria como colocar o email colhido no bando de dados em uma variavel para usarmos ela para preencher  o New MailAdess para que não precisa-se ter um textbox no form. Segue código:

    Try
                        Dim mensagem_chamado As New MailMessage
                        Using conexao As New SqlConnection("Data Source=SERVIDOR;Initial Catalog=dados;Integrated Security=True")
                            Dim command As New System.Data.SqlClient.SqlCommand("Select [Par email] From Parametros ", conexao)
    
                            conexao.Open()
                            command.Parameters.AddWithValue("@Procurar_Registo", Me.txb_contato_chamado.Text)
                            Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()
                            If apap.HasRows Then
                                apap.Read()
                                txb_contato_chamado.Text = apap.GetValue(0).ToString()
                            Else
                                MessageBox.Show("Nao Existe")
                            End If
                        End Using
                        mensagem_chamado.Subject = "[Chamado: " & txb_chamado.Text & "]"
                        mensagem_chamado.To.Add("destinatario@hotmail.com")
                        mensagem_chamado.From = New MailAddress(txb_contato_chamado.Text)
                        mensagem_chamado.Body = "Providência 1: " & dgv_providencias.CurrentRow.Cells(0).Value.ToString & vbNewLine & _
                           "Providência 2: " & dgv_providencias.Rows(0).Cells(0).Value.ToString & "."
                        Dim smtp As New SmtpClient("smtp.gmail.com")
                        smtp.EnableSsl = True
                        smtp.Credentials = New System.Net.NetworkCredential(txb_contato_chamado.Text, "123456")
                        smtp.Port = 587
                        smtp.Send(mensagem_chamado)
                    Catch ex As Exception
                        MsgBox("Não foi possível enviar o chamdo para o email do cliente!Mais destalhes:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Erro ao enviar!")
                    End Try

    terça-feira, 5 de maio de 2015 00:44

Respostas

  • Você procura o registro pelo nome de e-mail e busca o proprio e-mail?

    pq busca o proprio e-mail?

     Dim emailchamado As String = Me.txb_contato_chamado.Text


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco


    terça-feira, 5 de maio de 2015 01:37

Todas as Respostas

  • Apenas não coloque ele no seu textbox, pode colocar em uma variavel exemplo.
    Dim mensagem_chamado As New MailMessage
    Dim emailChamado As string
    Using conexao As New SqlConnection("Data Source=SERVIDOR;Initial Catalog=dados;Integrated Security=True")
    
    Dim command As New System.Data.SqlClient.SqlCommand("Select [Par email] From Parametros ", conexao)
    conexao.Open()
                            command.Parameters.AddWithValue("@Procurar_Registo", Me.txb_contato_chamado.Text)
    Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()
    If apap.HasRows Then
        apap.Read()
        emailChamado  = apap.GetValue(0).ToString()
    Else
        MessageBox.Show("Nao Existe")
    End If
    End Using


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco

    terça-feira, 5 de maio de 2015 00:55
  • Tentei dessa forma que você disse e não deu certo

     Try
                        Dim mensagem_chamado As New MailMessage
                        Dim emailchamado As String
                        Using conexao As New SqlConnection("Data Source=SERVIDOR;Initial Catalog=dados;Integrated Security=True")
                            Dim command As New System.Data.SqlClient.SqlCommand("Select [Par email] From Parametros ", conexao)
    
                            conexao.Open()
                            command.Parameters.AddWithValue("@Procurar_Registo", emailchamado)
                            Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()
                            If apap.HasRows Then
                                apap.Read()
                                emailchamado = apap.GetValue(0).ToString()
                            Else
                                MessageBox.Show("Nao Existe")
                            End If
                        End Using
                        mensagem_chamado.Subject = "[Chamado: " & txb_chamado.Text & "]"
                        mensagem_chamado.To.Add("destinatario@hotmail.com")
                        mensagem_chamado.From = New MailAddress(emailchamado)
                        mensagem_chamado.Body = "Providência 1: " & dgv_providencias.CurrentRow.Cells(0).Value.ToString & vbNewLine & _
                           "Providência 2: " & dgv_providencias.Rows(0).Cells(0).Value.ToString & "."
                        Dim smtp As New SmtpClient("smtp.gmail.com")
                        smtp.EnableSsl = True
                        smtp.Credentials = New System.Net.NetworkCredential(emailchamado, "123456")
                        smtp.Port = 587
                        smtp.Send(mensagem_chamado)
                    Catch ex As Exception
                        MsgBox("Não foi possível enviar o chamdo para o email do cliente!Mais destalhes:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Erro ao enviar!")
                    End Try

    Nessa linha a parte emailchamado fica sublinhado e aparece a seguinte mensagem: Variable 'emailchamado' is used before it has been assigned a value. A null reference excepition could result at runtime. 

    command.Parameters.AddWithValue("@Procurar_Registo", emailchamado)

    terça-feira, 5 de maio de 2015 01:09
  • Você procura o registro pelo nome de e-mail e busca o proprio e-mail?

    pq busca o proprio e-mail?

     Dim emailchamado As String = Me.txb_contato_chamado.Text


    Uma imagem vale mais do que mil palavras, mas ocupa 3 mil vezes mais espaço em disco


    terça-feira, 5 de maio de 2015 01:37
  • Eu tenho um Formulário Parametros ligado a tabela Parametros. 

    Nesse formulário existe um campo chamado email empresa (que é o email da empresa que usa o programa de help-desk).

    Tenho também um formulário de Chamados ligado a uma tabela Chamados

    Nesse formulário existe um botao que envia para o email do cliente o chamado, ou seja:

    emailremetente = email empresa no formulário Parametros e [Par email] na tabela Parametros, assim, como ele está no formulário Parametros eu não consigo pegar o valor texto para colocar direto em:

    mensagem_chamado.From = New MailAddress(txb_contato_chamado.Text)


    Assim, eu fiz a consulta na tabela, joguei o valor do campo em um textbox do formulário Chamados, pois foi a única maneira que consegui.

    eu queria que ficasse em uma variavel mas não consigo...

    quarta-feira, 6 de maio de 2015 19:43