Jump to content
veaoum

Erro em formato mail

Recommended Posts

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."

Share this post


Link to post
Share on other sites
NunoDinis

Já puseste mensagens para verificar se o split está a ser bem feito ?


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

ndsotware.org

Share this post


Link to post
Share on other 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.

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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...

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Edited by veaoum

Share this post


Link to post
Share on other sites
NunoDinis
não funciona, dá-me erro.

Experimenta:

dados(7).toString()

Que erro dá ?

Edited by NunoDinis

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

ndsotware.org

Share this post


Link to post
Share on other sites
NunoDinis

Sinceramente não estou a perceber porque é que isso está a acontecer...


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

ndsotware.org

Share this post


Link to post
Share on other 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 ...

Share this post


Link to post
Share on other sites
veaoum

o mail que usas de envio não é o gmail porque o "smtp.port" "smtp.enablessl" tem haver com as defenições do email de origem

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.