Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Inviare mail scaglionati

    Carissimi,
    ho questo script che invia mail con file allegato, dato che sarà un invio massiccio ogni volta, 200 e +, come posso implementare al mio script la possibilità che siano scaglionate, cioè tipo: 10 mail ogni 5 minuti etc o altro che mi consigliate anche con un contatore che indica quante mail inviare e inviate.
    codice:
    <%
    dim fs,fo,x,extfile,folder
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set fo=fs.GetFolder("d:\inetpub\webs\SITO\public\doc\pdf\" & request.form("periodo") & "\")
    set file3 = fo.files
    
    for each x in file3
    
    extfile = left(split(x.Name,".pdf")(0),14)
    
    sql = "SELECT * FROM utenti WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI' "
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, Conn, 3, 3
    
    if not rs.eof then
    
    nome = rs.fields("Nome")
    cognome = rs.fields("Cognome")
    codice_cliente = rs.fields("codice_cliente")
    emails = rs.fields("email")
    
    Dim iMsg
    Dim iConf
    Dim Flds
    set iMsg = CreateObject("CDO.Message")
    set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    Flds("http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion") = True
    
    Flds("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.miosito.it" 
    
    Flds("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    
    Flds("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    
    Flds("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 240
    
    Flds.Update
    
    folder = request.form("periodo")
    
      bim = MID(folder,17)
      bim = Replace(bim, "_" , " ")  
      anno = MID(folder,1,4)    
    
    nomefile = x.Name
    
    
    With iMsg
    Set .Configuration = iConf
    .To = emails
    .From = "IO<io@miosito.it>"
    .Subject = "MAIL CON ALLEGATO PDF"
    .TextBody = "In allegato fattura "
    .AddAttachment server.mappath("../doc/pdf/" & request.form("periodo") & "/" & nomefile & "") 
    .Send
    End With
    
    end if
    %>
    NO ALLEGATO
    <%
    else
    %>
    INVIO MAIL OK
    <%
    end if
    next
    set sf=nothing
    set fo=nothing
    set fs=nothing
    set file3=nothing
    
    %>
    Grazie
    G.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Qualche script in rete si trova (a mio avviso poco affidabili) per l'invio delle mail a blocchi (non credo si possano temporizzare), ma se fossi in te mi appoggerei a siti specializzati (quelli a pagamento sono migliori) in newsletter.

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Si intendevo invio mail a blocchi, se conoscevi, anche se pochi affidabili, qualche script che hai potuto testare e che posso implementare al mio script.
    Grazie

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    non avendo ASP un timer, ci sono solo due strade da poter percorrere:


    lato server: schedulare l'operazione
    bisogna che l'hoster consenta operazioni pianificate, e di solito non le consentono così ravvicinate (tipicamente è una volta al giorno).
    altrimenti è necessario un server proprio da poter manipolare


    lato client: fare spesso click su una pagina (o farlo fare al browser)
    mi è capitato di testate uno script ma il mio provider mi mise subito l'IP in blacklist.
    nemmeno capisco come mai, visto che l'operazione avveniva su server remoto
    Ultima modifica di Vincent.Zeno; 02-07-2014 a 23:39

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie Vincent, per la tua risposta, e invece uno script per mandare email a blocchi da 50 mail con lo stesso invio, considerando che hanno pure l'allegato?
    Grazie

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    non ne ho trovati, me lo sono fatto (tanto quello che trovi "non va mai bene" così com'è )

    aspetta l'operazione pianificata che ho impostato sul server, e invia un po' di mail al giorno.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    https://www.google.it/search?q=scrip...mail+a+blocchi per gli allegati dovrai implementarlo tu, per la temporizzazione forse si può fare qualcosa in js con un setTimeinterval/setTimeout ma bisogna tenere aperta la pagina che esegue gli invii
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie Andrea,
    lo script che ho postato ha già impostato l'allegato ed è funzionante, ora volevo una mano per implementarci l'invio a blocco, ho visto tanti script in giro e non saprei come interfacciarlo con il mio.
    Potresti darmi una mano?
    Grazie
    G.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Altra cosa, nello script che ho postato su, capita che essendo presente + volte prelevi lo stesso indirizzo mail ma con codice cliente diverso, quindi allegato diverso, c'è la possibilità di far ricoscere al ciclo lo stesso indirizzo mail e quindi inviare un unica mail con tutti gli allegati di riferimento.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Per l'invio a blocchi sto provando questo script che ho implementato al mio ma ho questo errore:
    ADODB.Recordset error '800a0bcd'
    Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
    /public/invioblocco.asp, line 36


    ecco lo script, dove sbaglio, potete aiutarmi?
    Grazie
    codice:
    <%
    Dim periodos, pag, cn, rs, quante, tot, i, email
    
    ' Recupero il corpo della mail
    periodos = request.form("periodo")
    
    pag = Request.QueryString("pag")
    If IsNumeric(pag) = False Or pag < 1 Then pag = 1
    
    If periodos <> "" Then
    Session("periodos") = periodos
    Else
    Response.End
    End If
    
    dim fs,fo,x,extfile,folder
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set fo=fs.GetFolder("d:\inetpub\webs\SITO\public\doc\pdf\" & request.form("periodo") & "\")
    set file3 = fo.files
    
    for each x in file3
    
    extfile = left(split(x.Name,".pdf")(0),14)
    
    strConnect = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("../../mdb-database/prova.mdb") 
    
    Set rs = Server.CreateObject("ADODB.Recordset")
        rs.ActiveConnection = strConnect
        rs.Source = "SELECT * FROM user WHERE codice_cliente = '" & extfile & "' AND attivo = 'SI'" 
        rs.CursorType = 1
        rs.Open()
    
    quante = 10
        rs.CacheSize = quante
        rs.PageSize = quante
        rs.AbsolutePage = pag
    tot = CInt(rs.PageCount)
        i = 0
        
    nome = rs.fields("Nome")
    cognome = rs.fields("Cognome")
    codice_cliente = rs.fields("codice_cliente")
    emails = rs.fields("email")
        
    Do While Not rs.EOF
    
    DIM iMsg, Flds, iConf
    
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    
    Flds(cdoSendUsingMethod) = cdoSendUsingPort
    Flds(cdoSMTPServer) = "smtp.aruba.it"
    Flds(cdoSMTPServerPort) = 25
    Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
    Flds.Update
    
    folder = periodos
    
      bim = MID(folder,17)
      bim = Replace(bim, "_" , " ")  
      anno = MID(folder,1,4)    
    
    nomefile = x.Name
    
    
    With iMsg
    Set .Configuration = iConf
    .To = emails
    .From = "IO<io@miosito.it>"
    .Subject = "MAIL CON ALLEGATO PDF"
    .TextBody = "In allegato fattura "
    .AddAttachment server.mappath("../doc/pdf/" & periodos & "/" & nomefile & "") 
    .Send
    End With
    
    response.Write emails&"<br>"
    
    i = i + 1
    If i = quante Then Exit Do
    rs.MoveNext
    Loop
    
    rs.Close
    Set rs = Nothing
    
    If CInt(pag) < CInt(tot) Then
    Response.redirect "invioblocco.asp?pag=" & CInt(pag) + 1
    End If
    
    Response.write ("Pagina corrente: " & pag)
    next
    %>
    Aiutatemi grazie.
    G.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.