Alternativa compatible con JavaScript para el lenguaje JScript f (x) = y que se usa al configurar CDO. Opciones de mensaje

StackOverflow https://stackoverflow.com/questions/468089

Pregunta

Tengo una página ASP escrita en JScript que envía correos electrónicos utilizando CDO.Message. Para especificar un servidor SMTP (y otras opciones) estoy haciendo algo como esto:

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver") =
    "smtp.example.com";

Ahora, aquí viene la trampa. Tengo este código en un archivo de inclusión independiente que incluyo en una página HTML como JavaScript para poder ejecutar pruebas unitarias en un navegador (usando JsUnit, etc.). Tengo objetos simulados de JavaScript (servidor, solicitud, etc.) que crean un entorno ASP falso para el código JScript incluido. El único problema que me queda es con la configuración de la opción CDO.Message. Dado que la sintaxis f (x) = y que se usa en el extracto de código anterior no es JavaScript válido (operando izquierdo no válido), no puedo ejecutar este fragmento de código (tal como está) dentro un navegador. Actualmente, simplemente lo estoy omitiendo en mi prueba de unidad con un condicional que detecta si el entorno es realmente ASP.

No creo que haya una solución de JavaScript para esto. Estoy buscando una sintaxis alternativa (que puede usar las interfaces ActiveX de manera diferente) para configurar las opciones de CDO.Message que también serían JavaScript sintácticamente válido.

¿Fue útil?

Solución

Descubrí la respuesta al mirar el ejemplo de código C ++ en http://msdn.microsoft.com/en-us/library/ms526318 (EXCHG.10) .aspx .

La solución es hacer la asignación explícitamente a la propiedad Value :

mail.Configuration.Fields.Item(
    "http://schemas.microsoft.com/cdo/configuration/smtpserver").Value =
    "smtp.example.com";

De esta manera, el código anterior es JavaScript válido que se puede probar con un objeto de configuración simulado.

Otros consejos

He tenido el mismo problema al escribir Javascript del lado del servidor para IIS, esa sintaxis f (x) = y estaba fallando en el verificador de sintaxis de mi IDE. La solución que encontré útil fueron los comentarios condicionales de JScript como estos:

f(x)/*@cc_on@if(0)*/[0]/*@end@*/ = y;

Pone el índice de subíndice [0] al final excepto cuando se ejecuta en el motor JScript de Microsoft. Pero, ciertamente, mi solución es un poco hacky. Creo que en la mayoría de los casos el suyo es más limpio, así que gracias por compartirlo.

-Simon

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top