Hola como estan? amigos de ASP.net.
Tengo my site que es un boletin electronico, es sobre LA FACULTADDE LETRAS de mi universidad. Hay dos tipos de usuarios: administradores y lectores. Los administradores seeran los profesores (puede haber varios administradores).
Estops profesores pueden publicar dos tipos de documentos: publicaciones y novedades.
Cada vez q un profesor registra una pub o una novedad, el sistemas tiene q enviar un email a cada lector, informandole que la seccion e publicaciones fue actualizada.
Tengo que tener en cuenta las limitaciones q me puso el Hosting. solo puedo enviar 2000 email al dia.
y no se como hacerlo, se me ocurrieron ideas pero las descarte.
Puesto que imaginense q hubiera simultaneamente dos profesores q esten ingresando sus publicaciones, los correos pasarian a algo asiu como una cola de correos, tendria q tenere en cuenta a los profes que estan enviando sus publiaciones y q se encuentren en otro sitio...mi problema tambien seria como y cuando activar el mecanismo, habia intentado usar un reloj y ademas q pasa si el profe cierra su navegador. se seguiria enviando los correos????
al parecer toda esta implementacion viene desde el servidor, pense q tal vez podia hacerlo todo en sql server 2000 (en algo asi como un procedimiento almacenado), se podra porgramar en sql?
Trabajo en visual studio 2003 .et framework 1.1, c #
porfa si alguien tuviera una idea o sugerencia me la podria hacer llegar
Bueno esto es lo q basicamente intente:
este es un script en lado cliente en javascript:, pero a manera de ejempo estaba haciendo q me envie cada hora 100 correos noma(como prueba)
function mostrar(){
serverdate.setSeconds(serverdate.getSeconds()+1)
var hora=serverdate.getHours();
var minutos=serverdate.getMinutes();
var segundos=serverdate.getSeconds();
if(<%=inicio%>==1)
{
if(auxiliar==)
{
auxiliar=0;
<%=EnvioMasivo()%>//se va al servidor y envia a los siguientes 100/
<%=permiso=1%>
}
else
{auxiliar=auxiliar+1;}
}
}
window.onload=function(){
setInterval("mostrar()", 1000)
}
y este en el lado schrap:
Basicamente es esto:
public void EnvioMasivo()
{
DataSet dtListaCorreos = new DataSet();
dtListaCorreos=usu.ListarCorreosTodosUsuarios();
num=dtListaCorreos.Tables[0].Rows.Count;
if(num==0)
{
inicio=0;
permiso=0;
usu.RestaurarCorreosUsuario();//volverlos todos a 0
}
else
{
DataRow dr;
int i=0;
while(i<num)
{
dr=dtListaCorreos.Tables[0].Rows[i];
string aux=dr["nom_correo"].ToString();
if(i==0)
{ cadenaCorreosUsuarios=aux+","; }
else
{
if(i!=99)
{cadenaCorreosUsuarios=cadenaCorreosUsuarios+aux+",";}
else
{cadenaCorreosUsuarios=cadenaCorreosUsuarios+aux; }
}
i++;
}
EnviarCorreo();
}
}
las variables de inicio es cuando se clikeo en el boton guardar
y el otro, permiso es 0 cuando esta todavia en el intevalo de tiempo y es 1 cuando ya paso 1 hora.
Practicamente este codigo esta descartado puesto q pasaria si el profesor cierra su navegador????, se seguira enviando los correeos???? o el mecanismo se desactiva???
Pense tambien hacer una tabla y asi poder manejar a la cnatidad de persona s q reciebieron el correo.
bueno, comoles decia cualkier sugerencia sera muy bien recibida
gracias
Rocio Baez
De veras q este codigo me trae dolores de cabeza,