2009-05-11 26 views
10

Necesito enviar un correo electrónico desde mi aplicación, que se ejecutará bajo confianza media. Mi código de envío de correo electrónico actual que funciona bien bajo plena confianza lanza SecurityException virtud de confianza medioEnviar correo electrónico en GMail SMTP bajo confianza media

[SecurityException: Request for the permission of type 'System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] 

Examinar mi machine.config y archivos aliados revelan que mi acceso SMTP está restringido a Connect.

<SecurityClass Name="SmtpPermission" Description="System.Net.Mail.SmtpPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 

y

<IPermission class="SmtpPermission" version="1" Access="Connect"/> 

Según MSDN, Connect permite a petición en el puerto 25 solamente. Pero los servidores de Gmail funcionan en el puerto 587. ¿Alguna solución alternativa? sugerencias?

+0

Bounty porque me gustaría saber cómo enviar un correo electrónico bajo confianza media ahora que el puerto 25 casi siempre está bloqueado. – MarioDS

Respuesta

4

Gmail también acepta el puerto 25; usted acaba de dar el Puerto 25; su trabajo para mí.,

1

Ha intentado puerto 465.

http://support.google.com/mail/bin/answer.py?hl=en&answer=13287

También podría crear un servicio web, y enviar el correo electrónico de su aplicación en el servicio web. A continuación, ejecute el servicio web con plena confianza.

+0

El servicio web es una gran idea, pero no tengo dónde alojarlo. Tal vez ya exista uno ... – MarioDS

+0

¿Puede agregar un subdominio a su sitio web existente? –

+0

No es posible con el hosting que uso. Es un alojamiento compartido de confianza media. Incluso si fuera posible, el subdominio tendría las mismas restricciones. – MarioDS

1

En medium trust, sí, usted está "pegado" con el puerto 25. Si puede/tener acceso a (me refiero a su proveedor de alojamiento web) para crear archivos de configuración personalizada:

<IPermission class="SmtpPermission" version="1" Unrestricted="true" /> 

Referencias:

+0

Buena respuesta, pero lamentablemente esto no funciona con el alojamiento actual. – MarioDS

1

Muchas veces el servidor de Internet desea que use su propio servidor de SMTP para sus correos salientes. No sé si eso presentaría un problema con su situación particular, pero si no, probablemente debería contactar al host y preguntarles cuál es su servidor SMTP, en lugar de tratar de usar uno externo.

+0

Parece tan estúpido nunca haber pensado en esto. Esta fue la solución. – MarioDS

+0

He tenido esto antes. ¡Me alegro de poder ayudar! –

Cuestiones relacionadas