Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

veaoum

Erro em formato mail

Mensagens Recomendadas

veaoum

Bem o que se passa é o seguinte Tenho numa textbox a seguinte informação:

  1. Nº prog
  2. Nº func
  3. Nome
  4. Email
  5. data instalação

cada dado em cada linha, depois tenho uma variável que armazena através do split cada um destes dados, mas quando vou para enviar um mail ele lê bem o email mas dá-me erro, diz "system.formatException: A cadeia especificada não tem o formato necessário para um endereço de correio electrónico."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Não, o split separa uma string para um array de strings.

str = "Portugal#a#Programar"
strArr = str.Split("#");
For count = 0 To strArr.Length - 1
MsgBox(strArr(count))
Next

Terás na posição 0 Portugal, 1 a, 2 Programar.

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
thoga31

Ora bem, se o problema está no formato do endereço de correio electrónico, proponho que nos coloques um exemplo de dados que estás a meter na TextBox, o resultado obtido com o split e o código do envio do mail.

Só assim poderei ajudar melhor, não vou estar aqui a mandar tiros no escuro.


Knowledge is free! | Occasional Fortnite player

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
veaoum

Aqui está o código da função.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
	Dim aux As New geradorchavesDataSetTableAdapters.chavesTableAdapter
	Dim aux1 As New geradorchavesDataSetTableAdapters.dadosTableAdapter
	Dim dados() As String = txtverifica.Text.Split(Environment.NewLine)
	Dim cod As Integer = CInt(dados(0))
	Dim chave As String = ""
	Dim testa As Integer = 0
	Try
		If CInt(aux1.existe(cod)) > 0 Then
			If dados(1) <> aux1.Nfunc(cod) Then
				testa += 1
			End If
			If dados(2) <> aux1.Nnome(cod) Then
				testa += 1
			End If
			If dados(13) <> aux1.Nprocessador(cod) Then
				testa += 1
			End If
			If dados(14) <> aux1.Nmacadres(cod) Then
				testa += 1
			End If
			If dados(15) <> aux1.Nvolum(cod) Then
				testa += 1
			End If
		Else
			aux1.Insert(dados(0), dados(1), dados(2), dados(4), dados(5), dados(6), dados(7), dados(3), String.Empty, dados(8), dados(9), dados(10), dados(11), String.Empty, dados(12), dados(13), dados(14), dados(15))
		End If
	Catch ex As Exception
		aux1.Insert(dados(0), dados(1), dados(2), dados(4), dados(5), dados(6), dados(7), dados(3), String.Empty, dados(8), dados(9), dados(10), dados(11), String.Empty, dados(12), dados(13), dados(14), dados(15))
	End Try
	If testa < 3 Then
		chave = gerachave(dados(16), aux.desbloqueia(cod), aux.bloqueia(cod), cod)
	Else
		chave = gerachave(dados(16), aux.desbloqueia(cod), aux.bloqueia(cod))
	End If
	Dim correo As New System.Net.Mail.MailMessage
	Dim smtp As New System.Net.Mail.SmtpClient
	correo.From = New MailAddress("geral.activacao@gmail.com", "Vencimento programa")
	Try
		correo.To.Add(daddos(7))
	Catch ex As Exception
		MsgBox("Email errado: " & a & Environment.NewLine & ex.ToString)
		Exit Sub
	End Try
	correo.Subject = "Chave para programa"
	correo.Body = "<html><body><pre><font size=3 color=BLUE> Tem aqui a sua chave <p> " & chave & "</font></pre></body></html>"
	correo.IsBodyHtml = True
	correo.Priority = System.Net.Mail.MailPriority.Normal
	smtp.Host = "smtp.gmail.com"
	smtp.Credentials = New System.Net.NetworkCredential(mail, Pass)
	smtp.Port = 587
	smtp.EnableSsl = True
	Try
		smtp.Send(correo)
	Catch ex As Exception
		MsgBox("Falha no envio")
	End Try
End Sub

Ele corre bem e faz tudo direito até até a parte do

	Try
		correo.To.Add(daddos(7))
	Catch ex As Exception
		MsgBox("Email errado: " & dados(7) & Environment.NewLine & ex.ToString)
		Exit Sub

em que diz que o dados(7) não é um email valido mas na msgbox eu vejo que é um email.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Try
  correo.To.Add(daddos("um email correto"))
Catch ex As Exception
  MsgBox("Email errado: " & a & Environment.NewLine & ex.ToString)
Exit Sub
End Try

Põe um email para vermos o que ele diz...

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis

Então isso leva-me a querer que o daddos(7) não é um email ou não é um email correto.

Faz msgbox(daddos(7)). O que retorna ??


Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
veaoum

Novo teste que eu fiz, Criei uma textbox e o objectivo era colocar la o email e depois ir busca-lo a textbox quando necessita-se. O resultado é:

  1. Se for por código:
    txtemail.text=dados(7)
    

    não funciona, dá-me erro.

  2. Se antes de correr a função eu fizer copy/paste do email para o txtemail já funciona.

Como é que isto é possível.

Então isso leva-me a querer que o daddos(7) não é um email ou não é um email correto.

Faz msgbox(daddos(7)). O que retorna ??

"veaoum@gmail.com"

o mail corecto.

Editado por veaoum

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
NunoDinis
não funciona, dá-me erro.

Experimenta:

dados(7).toString()

Que erro dá ?

Editado por NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Carlos Pais

eu tenho um cidigo parecido, mas ele faz 1ºum pdf e depois envia, mas tive de alterar estas linhas

smtp.Port = 587 ----> esta apaguei

smtp.EnableSsl = True ----> esta passou a ser = False

e está a funcionar bem ...

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.