jueves, 25 de octubre de 2007

Envío de correo en Asp .net 2.0 con PassWordRecovery o CreateUserWizard

Un título demasiado largo para lo poco que se puede contar, pero eso sí, puede evitar a más de uno un quebradero de cabeza.

Cuando necesitamos que en nuestro sitio web, una vez que el usuario se ha creado una nueva cuenta se le envie un correo de esos de bienvenida y tal, necesitamos seguir estos pasos:

Añadir una entrada válida de smtp a nuestro Web.Config:


system.net>

2: mailSettings>

3: smtp>

4: network host="miserver" password="" userName=""/>

5: /smtp>

6: /mailSettings>

7: /system.net>


Configurar la propiedad CreateUserWizard.MailDefinition.From en la ventana de Propiedades o en el evento Page_Load, por ejemplo:

1: protected void Page_Load(object sender, EventArgs e)

2: {

3: CreateUserWizard1.MailDefinition.From = Administrador@misitio.com;

4: }


Nota: Es obligatorio definir esta propiedad como he comentado en el punto 2, no sirve el atributo from de smtp:

system.net>

2: mailSettings>

3: smtp from="Administrador@misitio.com"> NO FUNCIONA

4: network host="" password="" userName=""/>

5: /smtp>

6: /mailSettings>

7: /system.net>


Aunque la etiqueta anterior si que es válida para el control PasswordRecovery, de hecho sino esta definida esa etiqueta y no definimos la propiedad CreateUserWizard.MailDefinition.From en la ventana de Propiedades o en el evento Page_Load, nos encontraremos con esta excepcion:

Se debe especificar una dirección de correo electrónico en la propiedad From o en la sección system.net/mailSettings/smtp config.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Web.HttpException: Se debe especificar una dirección de correo electrónico en la propiedad From o en la sección system.net/mailSettings/smtp config.

Cosa que no ocurre con el control CreateUserWizard

Ciao.

No hay comentarios: