Visual Basic.NET - direccion de correo invalida al enviar correo desde aplicacion vb.net

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

direccion de correo invalida al enviar correo desde aplicacion vb.net

Publicado por juan luis (43 intervenciones) el 02/05/2016 02:21:39
Estimados:
Agradeceré cualquier información para corregir un error aleatorio que me aparece al enviar correos desde una aplicación vb.net. El mensaje que aparece es "la cadena especificada no tiene la forma obligatoria para una dirección de correo electrónico". Como dato, estoy extrayendo las direcciones de correo desde una base sql server, y el error aparece en la instrucción: mailmessage.To.Add(New MailAddress(dirección destinatario)).
Pero lo extraño es que solo 11 direcciones de 450 presento este error. Las direcciones están validadas y al contrastarlas con otras no se observa ningún error sintáctico. Incluso si envío el correo desde el Outlook no acusa ningún error en la dirección y el correo lo envía y lo recibe el destinatario perfectamente. ¿Alguien ha tenido algún problema similar?.
Agradezco de antemano las orientaciones que me puedan indicar.

Saludos

Juan Luis Soler
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

direccion de correo invalida al enviar correo desde aplicacion vb.net

Publicado por Miguel (476 intervenciones) el 02/05/2016 18:46:17
Hola,
Es posible que contengan espacios " " las direcciones de correo.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

direccion de correo invalida al enviar correo desde aplicacion vb.net

Publicado por juan luis (43 intervenciones) el 02/05/2016 22:57:51
fue la primero que pensé, pero no, no hay blancos en ninguna parte de la cadena, se validan al momento de ingresarse al sistema y para mayor seguridad se mueven con strings.trim.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

direccion de correo invalida al enviar correo desde aplicacion vb.net

Publicado por juan luis (43 intervenciones) el 06/05/2016 23:44:55
Encontré el problema, por si a alguien le sucede lo mismo:
Descubrí que al inicio o al final de la cadena de la dirección de correo, tenían un código oculto. o sea, que no se mostraba en la pantalla y tampoco ocupaba un espacio. Espero darme a entender. Lo detecte porque al posicionarme al inicio del string y presionar la tecla DEL, aparentemente no se eliminaba un carácter, pero en realidad había eliminado el código oculto, porque al presionar un nuevo DEL si se eliminaba el primer carácter de la cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

direccion de correo invalida al enviar correo desde aplicacion vb.net

Publicado por Miguel (476 intervenciones) el 07/05/2016 02:25:44
Bueno, haz alguna función para validar la cadena del correo, algo como:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
'' Ahora mismo no puedo ver si funciona, así que solamente básate en esto:
 
Private Function ObtenerCorreoValido(Dim cadena As String) As String
   Dim resultado As String = ""
 
   '' Recorremos la cadena y pasamos solamente caracteres válidos (letras, dígitos, guiones, arrobas y puntos; agregar más si es necesario)
   For Each c As Char In cadena
      If Char.IsLetterOrDigit(c) Or c = "_" Or c="-" Or c="@" Or c="."
         resultado = resultado & c
      End If
   End For
 
   Return resultado
End Function


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar