Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Envio de correos a dominios con "ñ" (https://www.clubdelphi.com/foros/showthread.php?t=92992)

newtron 11-04-2018 18:18:02

Envio de correos a dominios con "ñ"
 
Hola a tod@s.

Usando Indy para el envío de correos me he encontrado con un problema al enviar correos a dominios con una ñ, me da error (sin indentificar).

¿Alguna idea?

Gracias y un saludo

mamcx 11-04-2018 19:12:28

Cita:

Empezado por newtron (Mensaje 525610)
¿Alguna idea?

Si, una sin identificar....

????

newtron 11-04-2018 20:41:35

Cuando digo "sin identificar" es porque se me abre una ventana de error vacía, no pone nada.

Ya sé que no da muchas pistas. Preguntaba por si alguien ha tenido el mismo problema.

orodriguezca 11-04-2018 20:48:34

(sin identificar), es el mensaje de error? o sin identificar significa que no se sabe cual es el error?

los nombres de dominios con eñe y/o acentos aún son un problema para muchos servidores, proveedores y clientes de correo; pero, hasta donde se, todos los dominios con eñe tiene a su vez un dominio real sin eñe que lo reemplaza (IDN). Quizas esto te de una idea de como seguir.


Edito: Uff, me demoré en responder. Ya vi que se aclaró lo de "Sin identificar".

newtron 11-04-2018 21:08:53

Cita:

Empezado por orodriguezca (Mensaje 525613)
los nombres de dominios con eñe y/o acentos aún son un problema para muchos servidores, proveedores y clientes de correo; pero, hasta donde se, todos los dominios con eñe tiene a su vez un dominio real sin eñe que lo reemplaza (IDN). Quizas esto te de una idea de como seguir.

Efectivamente, la solución temporal que hemos dado es cambiar el dominio por su equivalente real sin eñe, pero me gustaría si es posible, resolver eso sin que tengan los clientes que llamar con el problema. Aunque ciertamente no es una cosa habitual.

Ñuño Martínez 17-04-2018 14:12:21

Por lo que sé, las URL deben estar codificadas en UTF-8, y si no entendí mal cuando empecé a indagar con el Delphi Tokio, Delphi usa UTF-16 (¿Entendí mal? ¿Sí? ¿No?). ¿No será que estás usando UTF-16 sin saberlo? Ten en cuenta que en UNICODE los primeros 127 caracteres son idénticos, la cosa cambia a partir del 128.

newtron 17-04-2018 14:46:38

Cita:

Empezado por Ñuño Martínez (Mensaje 525714)
Por lo que sé, las URL deben estar codificadas en UTF-8, y si no entendí mal cuando empecé a indagar con el Delphi Tokio, Delphi usa UTF-16 (¿Entendí mal? ¿Sí? ¿No?). ¿No será que estás usando UTF-16 sin saberlo? Ten en cuenta que en UNICODE los primeros 127 caracteres son idénticos, la cosa cambia a partir del 128.

Gracias por contestar Ñuño.

Este problema lo tengo con un proyecto en Delphi 2007 y la verdad es que no sé muy bien cómo va el rollo ese de los utfs.

Saludos

Ñuño Martínez 19-04-2018 14:22:04

No es difícil de entender, pero sí un poco lioso de utilizar.

Básicamente UNICODE tiene tres tipos de codificación:
  1. UTF-8: Los caracteres pueden ser de 8, 16 ó 32 bits. Los caracteres de 8bit son exactamente iguales a los caracteres ASCII-7 (es decir, los primeros 127 caracteres son iguales en los de ASCII, independientemente de la página utilizada). Además de esto, otra ventaja que tiene es que los idiomas que usan el abecedario latino ocupan mucho menos espacio, ya que la mayoría de sus caracteres necesitan sólo 8 bits y unos pocos (tildes) 16 bits y ninguno 32 bits.
  2. UTF-16: Los caracteres pueden ser de 16 ó 32 bits. Los alfabetos más utilizados caben dentro de estos 16 bits, incluido el griego, árabe, cirílico y los caracteres del alfabeto chino simplificado más comunes. Sólo necesitarás 32 bits para los alfabetos menos comunes (dialectos indios, abecedarios arcaicos como el cuneiforme, etc.).
  3. UTF-32: Los caracteres tienen un tamaño fijo de 32 bits.
Como dije en el mensaje anterior, creo que Delphi usa UTF-16 (WIDESTRING y WideCHAR). Esto supone un pequeño problema ya que Linux e Internet usan UTF-8 por defecto. Además, este último es un semi-compatible con el viejo ASCII, por lo que es más utilizado por la mayoría de los lenguajes (como C). Supongo que tomaron esa decisión ya que WIDESTRING estaba implementada desde hace mucho en Delphi.

newtron 19-04-2018 14:48:49

Cita:

Empezado por Ñuño Martínez (Mensaje 525756)
No es difícil de entender, pero sí un poco lioso de utilizar.

Básicamente UNICODE tiene tres tipos de codificación:
  1. UTF-8: Los caracteres pueden ser de 8, 16 ó 32 bits. Los caracteres de 8bit son exactamente iguales a los caracteres ASCII-7 (es decir, los primeros 127 caracteres son iguales en los de ASCII, independientemente de la página utilizada). Además de esto, otra ventaja que tiene es que los idiomas que usan el abecedario latino ocupan mucho menos espacio, ya que la mayoría de sus caracteres necesitan sólo 8 bits y unos pocos (tildes) 16 bits y ninguno 32 bits.
  2. UTF-16: Los caracteres pueden ser de 16 ó 32 bits. Los alfabetos más utilizados caben dentro de estos 16 bits, incluido el griego, árabe, cirílico y los caracteres del alfabeto chino simplificado más comunes. Sólo necesitarás 32 bits para los alfabetos menos comunes (dialectos indios, abecedarios arcaicos como el cuneiforme, etc.).
  3. UTF-32: Los caracteres tienen un tamaño fijo de 32 bits.
Como dije en el mensaje anterior, creo que Delphi usa UTF-16 (WIDESTRING y WideCHAR). Esto supone un pequeño problema ya que Linux e Internet usan UTF-8 por defecto. Además, este último es un semi-compatible con el viejo ASCII, por lo que es más utilizado por la mayoría de los lenguajes (como C). Supongo que tomaron esa decisión ya que WIDESTRING estaba implementada desde hace mucho en Delphi.

Alto y claro.

Gracias por la explicación.
Saludos

mamcx 19-04-2018 16:38:49

Cita:

Empezado por Ñuño Martínez (Mensaje 525756)
Supongo que tomaron esa decisión ya que WIDESTRING estaba implementada desde hace mucho en Delphi.

No, fue porque el API de windows en UTF tambien es UTF-16:

https://en.wikipedia.org/wiki/Unicod...rosoft_Windows


La franja horaria es GMT +2. Ahora son las 11:07:22.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi