Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Gli allegati impazziscono!!!

    Salve a tutti, ho un form da compilare con cui manda una mail a degli id prelevati da un database (campo seleziona) ad un indirizzo di posta elettronica con allegato:

    codice:
    invia = Request.QueryString("invia")
    seleziona = Request.Form("seleziona") // spiego sotto cos'è
    
    if invia = "si" then
    //raccolta campi
    oggetto = Request.Form("oggetto")
    allegato = Request.Form("nomeAllegato")
    
    //Crea l'oggetto email 
    Set iMsg = CreateObject("CDO.Message")
    //Crea l'oggetto configurazione 
    Set iConf = CreateObject("CDO.Configuration")
    //Impostazione delle configurazioni per l'invio remoto
    Set Flds = iConf.Fields
    Flds("http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion") = True
    
    With iMsg
    
    //Assegnazione delle configurazioni
    Set .Configuration = iConf
    
    set conn = server.createobject("ADODB.Connection")
    conn.open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = "& server.MapPath("/mdb-database/mioDb.mdb"))
    
    set recset = Server.createobject("ADODB.Recordset")
    
    // spedisco destinatario per destinatario
    dim strValori
    dim ctInd
    
    strValori=split(Request.Form("seleziona"),",")
    
    for ctInd = 0 to ubound(strValori)
    	set recset = conn.execute("select * from miaTab where id="& strValori(ctInd))
    
    	if recset("nome") <> "" then	
    		
    		.From = "miaMail@miaMail.est"
    		.To = "miaAltraMail@miaAltraMail.est"
    		.Subject = oggetto
    		.TextBody = "Questa è una mail di prova spedita dall'amministratore"
    		.AddAttachment server.mappath("/mioFile.txt")
    		
    		.Send()
    	end if
    Next
    
    end with
    
    set Flds = Nothing
    set iConf = Nothing
    set iMsg = Nothing
    Il valore seleziona, è una campo di un forum con casella di controllo che permette di scegliere id di nomi, ad esempio possiamo avere un valore di tal genere:
    seleziona = "2,6,109,29,30,12"
    questo campo verrà diviso e per ogni occorrenza eseguita una query (seleziona dalla tabella dove l'id = (per ogni occorrenza del campo seleziona diviso dalla virgola).

    Purtroppo mi capita questo inconveniente:
    se scelgo un'id non ci sono problemi, ma se ad esempio selgo tutti i 6 id, mi ritroverò questa situazione:
    mi arrivano 6 mail con:
    la prima un allegato; la seconda con due allegati, la terza con tre allegati, la quarta con quattro e via dicendo.
    Gli allegato sono tutti uguali, ovvero lo stesso file ripetuto più volte.

    Ho fatto dei controlli, ma non so più che cosa controllare, potete aiutarmi per favore?

    Grazie, ciao.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questa for

    for ctInd = 0 to ubound(strValori)

    a che serve?

    La query ti riporta tutti i record corrispondenti agli "id" selezionati quindi devi scorrere il recordset con un do while not senza usare for/next

    Roby

  3. #3
    Originariamente inviato da Roby_72
    Questa for

    for ctInd = 0 to ubound(strValori)

    a che serve?

    La query ti riporta tutti i record corrispondenti agli "id" selezionati quindi devi scorrere il recordset con un do while not senza usare for/next

    Roby
    Mettiamo che seleziona = "2,6,109,29,30,12"
    strValori divide il contenuto dalla virgola, ricavando quindi un array di numeri, (che poi sono gli id nel database).

    il for ctInd = ... serve a prendere ogni elemento dell'array..

    il primo valore in questo caso è 2 ctInd = 2

    questo pezzo di codice sarà:
    for ctInd = 0 to ubound(strValori) //(ovvero 5 occorrenze)
    set recset = conn.execute("select * from miaTab where id="& strValori(ctInd))//cerca il record dove id sarà uguale a 2

    Grazie per il tuo aiuto Roby, spero di aver spiegato bene le cose, se qualcosa non è chiara fammi sapere.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ti basta fare:

    codice:
    set recset = conn.execute("select * from miaTab where id IN ("& strValori(ctInd) &")
    Roby

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 © 2026 vBulletin Solutions, Inc. All rights reserved.