• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bigboy123

Verificar Validade

29 mensagens neste tópico

Boas...

Em continuação do meu projecto de E-mail Sender encontrei mais uma dificuldade.

Gostaria de saber como posso fazer para que quando a pessoa insere o mail o programa verifique se é válido e não que dê erro e feche o programa como faz.

Tambem o mesmo caso aplica-se para a verificação da pass correspondente ao mail que a pessoa inserio ...

Espero boas ajudas como sempre  :cheesygrin:

Deixo aqui um link para visualizarem o programa

enviadordemail.th.jpg

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto comigo funciona:

Try
            SmtpServer.Send(MailFrom, MailTo, MailSubject, MailBody)
            MsgBox("Email enviado com sucesso!")
        Catch ex As Exception
            MsgBox("Por favor introduza um email válido")
        End Try
    End Sub

Experimenta pores na Textbox aonde escreves o email algo do género: Email1 ou Email1@ ou Email1@iol ou Email1@iol.p vai-te dar sempre erro ou seja "Por favor introduza um email válido", mas caso ponhas: Email1@iol.pt já funciona!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Buttpt o link q me deste é para C# e não VB.NET  :cheesygrin:

---------------------------------------------------------------------------

Bioshock o exemplo que me deste serve para validar se o mail tem @ ou @iol.pt e dar erro se não conter a "@" ou "@iol.pt" isso eu já fiz de uma maneira bem mais fácil  :D

O que eu pretendo é saber como ao Enviar verifique se o mail introduzido é válido ou se está registado nos servidores do MAIL (por exemplo, Hotmail). Se estiver ele envia com sucesso, se não apresenta o erro de MAIL Inválido ...

Obrigado pelas respostas de qualquer maneira  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Buttpt o link q me deste é para C# e não VB.NET  :cheesygrin:

É fácil de aplicar ao VB.

Se precisares de uma ajuda extra:

http://www.developerfusion.com/tools/convert/vb-to-csharp/

edit:

Public Function IsValidEmail(ByVal email As String) As Boolean
    'regular expression pattern for valid email
    'addresses, allows for the following domains:
    'com,edu,info,gov,int,mil,net,org,biz,name,museum,coop,aero,pro,tv
    Dim pattern As String = "^[-a-zA-Z0-9][-.a-zA-Z0-9]*@[-.a-zA-Z0-9]+(\.[-.a-zA-Z0-9]+)*\." & vbCr & vbLf & "    (com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$"
    'Regular expression object
    Dim check As New Regex(pattern, RegexOptions.IgnorePatternWhitespace)
    'boolean variable to return to calling method
    Dim valid As Boolean = False
    'make sure an email address was provided
    If String.IsNullOrEmpty(email) Then
        valid = False
    Else
        'use IsMatch to validate the address
        valid = check.IsMatch(email)
    End If
    'return the value to the calling method
    Return valid
End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continua a fazer o mesmo  :cheesygrin:

Se eu meto um mail inválido o programa fecha dando o erro de: Mailbox unavailable. The server response was: 5.7.3 Requested action aborted; user not authenticated

:D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só uma pergunta.. como é que vais enviar emails pela Hotmail? é que eles não fornecem smtps gratuitamente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só uma pergunta.. como é que vais enviar emails pela Hotmail? é que eles não fornecem smtps gratuitamente

Isso dizes tu  :shocking: É como se estivesses a enviar para Gmail  :biggrin:

Esse link tem o mesmo código que o link do buttpt, por isso fiquei na mesma  :cheesygrin:

Acho que quem me poderia dizer como resolver isto era o jpaulino que criou esse blog  :D

Alguem que saiba como fazer isto por favor  :down:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso dizes tu  :shocking: É como se estivesses a enviar para Gmail  :biggrin:

Esse link tem o mesmo código que o link do buttpt, por isso fiquei na mesma  :cheesygrin:

Acho que quem me poderia dizer como resolver isto era o jpaulino que criou esse blog  :D

Alguem que saiba como fazer isto por favor  :down:

Experimentaste o Try-Catch?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso dizes tu  :shocking: É como se estivesses a enviar para Gmail  :biggrin:

Não estou a dizer para hotmail, mas sim a partir de um hotmail... Tens de ter o smtp da hotmail e uma conta lá para enviares um email. Qual o smtp que estás a usar para enviar por hotmails?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentaste o Try-Catch?

Como eu ainda estou a iniciar-me na programação ainda não sei usar o try catch, podes dizer-me como fazer ?  :P

----------------------------------------------------------------------------

Não estou a dizer para hotmail, mas sim a partir de um hotmail... Tens de ter o smtp da hotmail e uma conta lá para enviares um email. Qual o smtp que estás a usar para enviar por hotmails?

Sim estou a enviar por hotmails e live.com.pt usando smtp.live.com

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ah uma maneira mas é um bocado chatinho...

era arranjares um maneira de preencheres a caixa de texto deste site automaticamente:

http://verify-email.org/

e veres a resposta que ele dá!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ah uma maneira mas é um bocado chatinho...

era arranjares um maneira de preencheres a caixa de texto deste site automaticamente:

http://verify-email.org/

e veres a resposta que ele dá!

mas depois se o site muda de endereço ou vai a vida...o programa deixa de funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como eu ainda estou a iniciar-me na programação ainda não sei usar o try catch, podes dizer-me como fazer ?  :P

----------------------------------------------------------------------------

Sim estou a enviar por hotmails e live.com.pt usando smtp.live.com

E o exemplo que eu dei é o que? Lololol

Edit: Caso não tenhas percebido..try catch

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado mas será que me podes fazer o código com try catch ?

É que fiquei na mesma  :P

Usando o seguinte

Imports System.Text.RegularExpressions

Function EmailAddressCheck(ByVal emailAddress As String) As Boolean

    Dim pattern As String = "^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"

    Dim emailAddressMatch As Match = Regex.Match(emailAddress, pattern)

    If emailAddressMatch.Success Then
        Return True
    Else
        Return False
    End If

End Function


' Botão que irá verificar se o e-mail inserido é válido

Private Sub btnCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheck.Click

    Debug.Print(EmailAddressCheck("omeu.email@servidor.com"))
End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta leres o link que te dei. Tens lá exemplos e tudo...e o bioshock também te deu um exemplo.

Dentro do Try metes o código que vais tentar (try) correr. Dentro do Catch (Apanhar) metes o que queres que aconteça quando o Try falha. O Catch apanha as excepções em vez de as mostrar, evitando muitas vezes que o programa vá abaixo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basta leres o link que te dei. Tens lá exemplos e tudo...e o bioshock também te deu um exemplo.

Dentro do Try metes o código que vais tentar (try) correr. Dentro do Catch (Apanhar) metes o que queres que aconteça quando o Try falha. O Catch apanha as excepções em vez de as mostrar, evitando muitas vezes que o programa vá abaixo.

Obrigado por teres explicado  :D

Se eu soubesse antes, o que o bioshock tinha dito servia muito bem.

Assim usei o 1º post do bioshock e fiz o seguinte.

            Try
                Smtp.Send(Txtde.Text, txtpara.Text, mail.Subject, mail.Body)
                ProgressBar1.Value = 100
                MsgBox("E-mail Enviado com Sucesso!")
                ProgressBar1.Value = 0
            Catch ex As Exception
                MsgBox("Por favor introduza um E-mail Válido")
                ProgressBar1.Value = 0
            End Try

Obrigado  :P:):D:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se o mail para onde tu queres enviar não existir ele envia à mesma!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OI ?!?!!??!

Porque ?  :eek:

Eu acho que não porque quando o mail é inválido o programa fecha e falha o envio, mas tendo o try catch o programa falha o envio mas não fecha.

Por isso penso que não envia  :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

OI ?!?!!??!

Porque ?  :eek:

Eu acho que não porque quando o mail é inválido o programa fecha e falha o envio, mas tendo o try catch o programa falha o envio mas não fecha.

Por isso penso que não envia  :hmm:

isso é se for um mail mal escrito tipo "mail.com" ou assim... mas se for um mail que não exista, ele envia à mesma! depois recebes no teu e-mail o relatório de falha de envio!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

isso é se for um mail mal escrito tipo "mail.com" ou assim... mas se for um mail que não exista, ele envia à mesma! depois recebes no teu e-mail o relatório de falha de envio!

Não ... Tás enganado.

Tudo está bom e não recebo em lado nenhum um relatório de erro.

Eu meto um fake mail com fake password ou entao o meu mail verdadeiro com fake pass e depois envio para um otro mail que tenho verdadeiro e quando o programa da erro ele n envia relatórios nenhuns ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora