Muy buenas, quisiera aportar un codigo que he desarrollado (seguro que ya hay muchos) en base a la limitacion de muchos hosting de limitar el numero de destinatarios de envio a traves del ASPEmail.
He enviado sin problemas empaquetando de 50 en 50 (o los que querais montar) los destinatarios y creando una cola de envio que me ha permitido enviar hasta 25.000 destinatarios (seguro que acepta mas) sin ningun problema.
En fin, aqui os lo dejo, yo utulizo una conexion con DSN a traves de un include que podeis ver en el codigo, pero cualquier conexion a BBDD es valida.
La BBDD contiene en uno de sus campos (email) el email del destinatario:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/boletines.asp" -->
<%
Dim Recordset1
Dim Recordset1_numRows
Dim paquetes
'Creo la variable para empaquetar los destinatarios
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = MM_boletines_STRING
Recordset1.Source = "SELECT * FROM [
Tabla de la BBDD] ORDER BY Email ASC"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()
Recordset1_numRows = 0
%>
<%
Application("contador") = 0
'Hacemos el primer bucle, creamos objeto y ponemos contadores a cero
DO while NOT Recordset1.eof
paquetes = 0
Set Mail= Server.CreateObject("Persits.MailSender")
mail.Host ="
smtp.tuweb.com"
Mail.Username = "
usuario_correo"
Mail.Password = "
password_correo"
mail.From ="
[email protected]"
mail.FromName="
Informacion tuweb.com"
mail.Subject = "
Asunto del mensaje"
mail.AppendBodyFromFile "
D:\xvrt\tuweb.com\Html\boletines\presentacion.html"
'Esta es la localizacion en tu server de la pagina html que sera el boletin
mail.IsHTML =true
'preparo el segundo bucle, empaqueto todo en paquetes de 50 destinatarios y envio
DO while NOT Recordset1.eof AND paquetes < 50
mail.AddBcc (Recordset1.Fields.Item("Email").Value),"Anunciant es"
Recordset1.movenext
Application("contador") = Application("contador") + 1
paquetes = paquetes + 1
LOOP
On Error Resume Next
mail.SendToQueue
if err <> 0 then
response.write "HA OCURRIDO EL SIGUIENTE ERROR." & err.description
else
response.write "MENSAJE ENVIADO CORRECTAMENTE A." & Application("contador") & "<br>"
end if
Set Mail = Nothing
LOOP
response.write "<BR>" & "TOTAL ENVIADOS" & Application("contador")
%>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>
Espero que os sea de ayuda!!!!