veaoum Posted December 14, 2012 at 06:27 PM Report #487151 Posted December 14, 2012 at 06:27 PM Bem o que se passa é o seguinte Tenho numa textbox a seguinte informação: Nº prog Nº func Nome Email 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."
NunoDinis Posted December 14, 2012 at 06:55 PM Report #487155 Posted December 14, 2012 at 06:55 PM 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
veaoum Posted December 14, 2012 at 07:41 PM Author Report #487162 Posted December 14, 2012 at 07:41 PM Sim, até ja coloquei numa BD e depois ia buscar o valor. O split come o separador certo?
NunoDinis Posted December 14, 2012 at 07:58 PM Report #487165 Posted December 14, 2012 at 07:58 PM (edited) 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 December 14, 2012 at 07:58 PM by NunoDinis Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
thoga31 Posted December 14, 2012 at 09:27 PM Report #487179 Posted December 14, 2012 at 09:27 PM 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!
veaoum Posted December 14, 2012 at 11:56 PM Author Report #487202 Posted December 14, 2012 at 11:56 PM Bem então depois tento colocar um exemplo com calma. Abraço a todos
veaoum Posted December 15, 2012 at 07:15 AM Author Report #487214 Posted December 15, 2012 at 07:15 AM 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.
NunoDinis Posted December 15, 2012 at 12:00 PM Report #487228 Posted December 15, 2012 at 12:00 PM (edited) 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 December 15, 2012 at 12:01 PM by NunoDinis Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
veaoum Posted December 15, 2012 at 05:42 PM Author Report #487267 Posted December 15, 2012 at 05:42 PM Já fiz isso e dessa forma funciona bem.
NunoDinis Posted December 15, 2012 at 05:55 PM Report #487270 Posted December 15, 2012 at 05:55 PM 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
veaoum Posted December 15, 2012 at 06:29 PM Author Report #487274 Posted December 15, 2012 at 06:29 PM (edited) 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 é: Se for por código: txtemail.text=dados(7) não funciona, dá-me erro. 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 December 15, 2012 at 06:28 PM by veaoum
NunoDinis Posted December 15, 2012 at 06:31 PM Report #487275 Posted December 15, 2012 at 06:31 PM (edited) não funciona, dá-me erro. Experimenta: dados(7).toString() Que erro dá ? Edited December 15, 2012 at 06:31 PM by NunoDinis Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro. ndsotware.org
veaoum Posted December 15, 2012 at 06:39 PM Author Report #487276 Posted December 15, 2012 at 06:39 PM Já tinha experimentado isso, dá sempre o mesmo erro, melhor falha sempre naquele try.
NunoDinis Posted December 15, 2012 at 07:16 PM Report #487283 Posted December 15, 2012 at 07:16 PM 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
veaoum Posted December 17, 2012 at 05:19 PM Author Report #487519 Posted December 17, 2012 at 05:19 PM nem eu.....
Carlos Pais Posted December 28, 2012 at 10:53 PM Report #488884 Posted December 28, 2012 at 10:53 PM 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 ... 😵😴🥵🥴 No Desenvolvimento as Possibilidades são Infinitas 😵😴🥵🥴 , podemos é ficar doidos ...
veaoum Posted December 29, 2012 at 03:44 AM Author Report #488915 Posted December 29, 2012 at 03:44 AM 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now