Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    Per tutti gli esperti....

    Ciao a tutti,
    con molta fatica sono riuscito a mettere insieme queste quattro righe.
    Il codice sottostante non fa altro che prelevare dei dati dalla colonna di un database (questi dati sono e mail), e spedire una mail a tutti contemporaneamente......il mio problema è questo: come faccio a fare apparire accanto ogni mail un checkbox e fare in modo di mandare mail soltanto a quelli che sono selezionati...

    Grazie per l'aiuto



    <%@ import namespace="system.data" %>
    <%@ import namespace="system.data.oledb"%>
    <%@ import namespace="system.web.mail" %>
    <script language="VB" runat="server">

    dim data as string="banca.mdb"

    dim percorso as new oledbconnection ("provider=microsoft.jet.OLEDB.4.0; data source=" & Server.MapPath("banca.mdb"))

    sub page_load(obj as object, e as eventargs)
    dim conn as new oledbcommand (" select * from anagrafici", percorso)

    dim objreader as oledbdatareader

    percorso.open

    objreader=conn.executereader

    while objreader.read
    response.write (objreader.getstring(1))
    end while
    percorso.close
    end sub


    sub vai(obj as object, e as eventargs)
    dim conn as new oledbcommand (" select * from anagrafici", percorso)

    dim objreader as oledbdatareader

    percorso.open

    objreader=conn.executereader



    while objreader.read

    dim mymessage as new mailmessage
    mymessage.to =(objreader.getstring(1))
    mymessage.from="pippo@iol.it"
    mymessage.subject="soggetto"
    mymessage.bodyformat=mailformat.text
    mymessage.body=messaggio.text
    smtpmail.send(mymessage)




    end while
    percorso.close
    end sub


    </script>
    <html><body>
    <form runat="server">
    <asp:textbox id="messaggio" runat="server"/>
    <asp:button runat="server" onclick="vai" />




    </form>




    </body></html>
    victor
    ----------------------

  2. #2
    dimmi se ho capito male.
    tu vuoi far apparire una lista di indirizzi email affiancati da una checkbox.
    dopo questo tu selezioni gli utenti e fai partire la sub dell'invio email, la quale spedisce solo agli utenti selezionati?

    se si

    creii una checbox list. fai il databinding con una sql.

    del tipo

    checkboxlist1.datasource = objreader
    checkboxlist1.datatextfield = objreader.Item("cognome")
    checkboxlist1.datavaluefield = objreader.Item("email")

    a quel punto li fai un control For Each nella checkbox e poi invi la mail

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    ci siamo quasi..

    ciao,
    intanto grazie per la risposta.
    Poi, dato che sono proprio alle prima armi, riusciresti a farmi vedere come tu faresti tramite il mio esempio?

    Grazie
    victor
    ----------------------

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    codice:
    <%@ import namespace="system.data" %>
    <%@ import namespace="system.data.oledb"%>
    <%@ import namespace="system.web" %>
    <%@ import namespace="system.web.mail" %>
    <script language="VB" runat="server">
    dim data as string="banca.mdb"
    dim MyConn as new oledbconnection ("provider=microsoft.jet.OLEDB.4.0; data source=" & Server.MapPath("banca.mdb"))
    Dim DS as new dataset("MyDataset")
    '-------------------------------------------------
    sub page_load(obj as object, e as eventargs)
    dim MyCommand as new OleDBDataAdater (" select * from anagrafici", MyConn)
    MyCommand.Fill(DS, "TblEmail")
    RptEmail.DataSource = DS.Tables("TblEmail").DefaultView
    end sub
    '-------------------------------------------------
    sub InviaMail(obj as object, e as eventargs)
    Dim IDIns as Integer
    For i = 0 to RptEmail.Items.Count - 1
    	If CType(RptEmail.Items.Item(i).Controls(1), CheckBox).Checked Then
    		'Invia la mail se è spuntata la casella
    		dim mymessage as new mailmessage 
    		mymessage.to = DS.Tables("TblEmail").Rows(i)(1)
    		mymessage.from="pippo@iol.it" 
    		mymessage.subject="soggetto" 
    		mymessage.bodyformat=mailformat.text
    		mymessage.body=messaggio.text 
    		smtpmail.send(mymessage) 
    	End If
    Next i
    end sub
    '-------------------------------------------------
    </script>
    <html>
    <body>
    <form runat="server">
    <asp:textbox id="messaggio" runat="server"/>
    
    
    <ASP:Repeater ID="RptEmail" Runat="server">
    	<HeaderTemplate>
    		Tabella Email
    	</HeaderTemplate>
    	<ItemTemplate>
    		Email:<%#Container.DataItem(1)%>
    		<ASP:CheckBox Runat="Server" ID="MyCheck" Checked="False"/>
    	</ItemTemplate>
    	<FooterTemplate>
    		<ASP:Button ID="BttInvia" Runat="Server" Text="Invia" OnClick="InviaMail"/>
    	</FooterTemplate>
    </ASP:Repeater>
    
    </form>
    </body>
    </html>
    Se hai bisogno di chiarimenti dillo.

    PS: Evita titoli del tipo "Per tutti gli esperti..."

    Hey hey, my my Rock and roll can never die!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    1,183

    grazie...ma non funziona ancora

    Grazie zampa 28 per il tuo prezioso aiuto.
    Sono sicuro che sei vicinissimo. Ma ancora non va!!
    Qui sotto ho rimesso il codice che tu mi hai dato, mettendo il databind (che sicuramente avevi dimenticato). Ma il problema è che non manda nessuna mail, mi sa che c'è qualcosa che non va . Io penso che il problema sia in questa rigaS.Tables("anagrafici").Rows(i)(1), che non preleva nulla..puoi vedere tu cosa serve ancora?? Grazie mille.

    <%@ import namespace="system.data" %>
    <%@ import namespace="system.data.oledb"%>
    <%@ import namespace="system.web" %>
    <%@ import namespace="system.web.mail" %>
    <script language="VB" runat="server">
    dim data as string="banca.mdb"
    dim MyConn as new oledbconnection ("provider=microsoft.jet.OLEDB.4.0; data source=" & Server.MapPath("banca.mdb"))
    Dim DS as new dataset("MyDataset")
    '-------------------------------------------------
    sub page_load(obj as object, e as eventargs)
    dim MyCommand as new OleDBDataAdapter (" select * from anagrafici", MyConn)
    MyCommand.Fill(DS, "anagrafici")
    RptEmail.DataSource = DS.Tables("anagrafici").DefaultView
    databind()
    end sub
    '-------------------------------------------------
    sub InviaMail(obj as object, e as eventargs)
    Dim I as Integer
    For i = 0 to RptEmail.Items.Count - 1
    If CType(RptEmail.Items.Item(i).Controls(1), CheckBox).Checked Then
    'Invia la mail se è spuntata la casella
    dim mymessage as new mailmessage
    mymessage.to = DS.Tables("anagrafici").Rows(i)(1)
    mymessage.from="pippo@iol.it"
    mymessage.subject="soggetto"
    mymessage.bodyformat=mailformat.text
    mymessage.body=messaggio.text
    smtpmail.send(mymessage)
    End If
    Next i
    end sub

    '-------------------------------------------------
    </script>
    <html>
    <body>
    <form runat="server">
    <asp:textbox id="messaggio" runat="server"/>


    <ASP:Repeater ID="RptEmail" Runat="server">
    <HeaderTemplate>
    Tabella Email
    </HeaderTemplate>
    <ItemTemplate>
    Email:<%#Container.DataItem(1)%>
    <ASP:CheckBox Runat="Server" ID="MyCheck" Checked="False"/>
    </ItemTemplate>
    <FooterTemplate>
    <ASP:Button ID="BttInvia" Runat="Server" Text="Invia" OnClick="InviaMail"/>
    </FooterTemplate>
    </ASP:Repeater>

    </form>
    </body>
    </html>
    victor
    ----------------------

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.