Discussione chiusa
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Caricare un indirizzo email in una finestra di outlook

  1. #1
    Joe_01 non è in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Sono arrivato a questo:
    Con un datareader sono riuscito ad estrapolare solo gli indirizzi email dalla tabella e scriverli in una listbox come dal seguente codice:

    While reader.Read() 
    ListBox1.Items.Add(String.Format("{0}", reader(0))) 
    End While 
     
    ovviamente manca tutta la parte della connectionstring ecc.
    
    il problema è caricarli in un messaggio di outlook io ho preparato qusta funzione, ma non so cosa scrivere dopo (=) di .To.

    With oMail 'questo è il mio modello di messaggio 
    .To = ????????????????????????? 
    .Attachments.Add(conAllegato) 
    oMail.Display() 'mostra la finestra di outlook pronta per l'invio 
    '.Send() 
    End With
    
    Ringrazio anticipatamente per l'aiuto

  2. #2
    Joe_01 non è in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Joe_01 Visualizza il messaggio
    Sono arrivato a questo:
    Con un datareader sono riuscito ad estrapolare solo gli indirizzi email dalla tabella e scriverli in una listbox come dal seguente codice:

    While reader.Read() 
    ListBox1.Items.Add(String.Format("{0}", reader(0))) 
    End While 
     
    ovviamente manca tutta la parte della connectionstring ecc.
    
    il problema è caricarli in un messaggio di outlook io ho preparato qusta funzione, ma non so cosa scrivere dopo (=) di .To.

    With oMail 'questo è il mio modello di messaggio 
    .To = ????????????????????????? 
    .Attachments.Add(conAllegato) 
    oMail.Display() 'mostra la finestra di outlook pronta per l'invio 
    '.Send() 
    End With
    
    Ringrazio anticipatamente per l'aiuto

    Credo di avercela quasi fatta, praticamente ora legge gli indirizzi, carica il modello di messaggio ecc. ecc., fa tutto ciò che mi serve.
    E' rimasto questo errore che non so proprio come gestire, praticamente carica gli indirizzi nel campo corrispondente, ma va subito all'ultimo, io ho bisogno invece che si incrementi di un indirizzo alla volta dopo aver eseguito il "send".
    Aspetto con ansia un vostro suggerimento grazie.
    Allego tutta la funzione:

    PrivateSub btnInviaMail_M_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInviaMail_M.Click
    OutlookNamespace = OApp.GetNamespace("MAPI")
    oMail = CType(OApp.CreateItemFromTemplate(modello), Outlook.MailItem)
     
     
     
    Dim Mail = From EMail In Mail_DB.tbElencoAziende
    Dim queryString AsString = "SELECT mail FROM tbElencoAziende"
     
    tbTabella.DataSource = Mail
    IndirizzoComboBox.DataSource = Mail
     
     
    Using connection AsNew SqlConnection(connectionString)
    Dim command AsNew SqlCommand(queryString, connection)
    connection.Open()
    Dim reader As SqlDataReader = command.ExecuteReader()
    Dim mailBuilder AsNew System.Text.StringBuilder
    ' Call Read before accessing data.
    While reader.Read()
    ListBox1.Items.Add(String.Format("{0}", reader(0)))
    oMail.To = (String.Format("{0}", reader(0)))
    EndWhile
    ForEach indirizzo In reader
    mailBuilder.Append(indirizzo)
    mailBuilder.Append("; ")
    Next
     
    With oMail
    '.To = mailBuilder.ToString
    '.Attachments.Add(conAllegato)
    oMail.Display() 'mostra la finestra di outlook 
    '.Send()
    EndWith
    'oMail.To = mailBuilder.ToString
     
    ' Call Close when done reading.
    reader.Close()
     
    EndUsing
     
     
     
    EndSub
    
    

  3. #3
    L'avatar di bumm
    bumm non è in linea Very Important Person Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Post
    2,140
    Blogs
    1
    Like Inviati  
    0
    Like Ricevuti  
    0
    Da quello che ho capito, vorresti mandare email dal ciclo.
    Ti sconsiglio di farlo. meglio mettere indirizzi su BCC (CCN) quindi nessuno dei destinatari vedrà gli indirizzi dei altri utenti. Inoltre ci pensa mail server a mettere gli indirizzi in coda e spedire la copia del messaggio a tutti gli destinatari.
    PrivateSub btnInviaMail_M_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInviaMail_M.Click
            oMail = CType(OApp.CreateItemFromTemplate(modello), Outlook.MailItem)
            Dim Mail = From EMail In Mail_DB.tbElencoAziende
            Dim queryString As String = "SELECT mail FROM tbElencoAziende"
            IndirizzoComboBox.DataSource = Mail
            Using connection As New SqlConnection(connectionString)
            Using  command As New Sql Command(queryString, connection)
                    connection.Open()
                    Using reader As SqlDataReader = command.ExecuteReader()
                        ' Call Read before accessing data.
                        While reader.Read()
                            ListBox1.Items.Add(String.Format("{0}", reader(0)))
                            If (String.IsNullOrEmpty(oMail.To)) Then
                                oMail.To = String.Format("{0}", reader(0))
                            Else
                                oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                            End If
    
                        End While
    
                    End Using
                End Using
            End Using
            oMail.Display()
            oMail.Send()
    EndSub
    
    P.S. c'e un limite sugli indirizzi in CCN quindi valuta anche questo.
    Ultima modifica di bumm; 22-11-2010 14:22  Motivo: P.S.
    ℹ️ Leggi di più su bumm ...

  4. #4
    Joe_01 non è in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao bumm, ho capito cosa intendi, in effetti carica tutti gli indirizzi, io ho letto in internete che l'istruzione "Do while...Loop" ad ogni ciclo di lettura di un datareader avanza di una riga.
    Per quello che dovrei fare io andrebbe benissimo, il problema è che non lo so applicare, io avrei bisogno di caricare un indirizzo, spedire il messaggio, andare alla riga dopo caricare il secondo indirizzo e spedire il messaggio, andare alla terza riga................. spedire il messaggio e cosi via.
    Non è possibile implementare una funzione in questo modo?



    Quote Originariamente inviato da bumm Visualizza il messaggio
    Da quello che ho capito, vorresti mandare email dal ciclo.
    Ti sconsiglio di farlo. meglio mettere indirizzi su BCC (CCN) quindi nessuno dei destinatari vedrà gli indirizzi dei altri utenti. Inoltre ci pensa mail server a mettere gli indirizzi in coda e spedire la copia del messaggio a tutti gli destinatari.
    PrivateSub btnInviaMail_M_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInviaMail_M.Click
            oMail = CType(OApp.CreateItemFromTemplate(modello), Outlook.MailItem)
            Dim Mail = From EMail In Mail_DB.tbElencoAziende
            Dim queryString As String = "SELECT mail FROM tbElencoAziende"
            IndirizzoComboBox.DataSource = Mail
            Using connection As New SqlConnection(connectionString)
            Using  command As New Sql Command(queryString, connection)
                    connection.Open()
                    Using reader As SqlDataReader = command.ExecuteReader()
                        ' Call Read before accessing data.
                        While reader.Read()
                            ListBox1.Items.Add(String.Format("{0}", reader(0)))
                            If (String.IsNullOrEmpty(oMail.To)) Then
                                oMail.To = String.Format("{0}", reader(0))
                            Else
                                oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                            End If
    
                        End While
    
                    End Using
                End Using
            End Using
            oMail.Display()
            oMail.Send()
    EndSub
    
    P.S. c'e un limite sugli indirizzi in CCN quindi valuta anche questo.

  5. #5
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,204
    Like Inviati  
    18
    Like Ricevuti  
    10
    L'invio dell'email lo devi fare all'interno, durante la lettura del tuo reader
    (in questo caso il ListBox potrebbe non servire, a meno che non ti serva per altri scopi).

     
        Using reader As SqlDataReader = command.ExecuteReader()
            ' Call Read before accessing data.
            While reader.Read()
                ListBox1.Items.Add(String.Format("{0}", reader(0)))
                If (String.IsNullOrEmpty(oMail.To)) Then
                    oMail.To = String.Format("{0}", reader(0))
                Else
                    oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                 End If
                 oMail.Display()
                 oMail.Send()
             End While
         End Using
    
    ℹ️ Leggi di più su gibra ...

  6. #6
    L'avatar di bumm
    bumm non è in linea Very Important Person Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Post
    2,140
    Blogs
    1
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da gibra Visualizza il messaggio
    L'invio dell'email lo devi fare all'interno, durante la lettura del tuo reader
    (in questo caso il ListBox potrebbe non servire, a meno che non ti serva per altri scopi).

     
        Using reader As SqlDataReader = command.ExecuteReader()
            ' Call Read before accessing data.
            While reader.Read()
                ListBox1.Items.Add(String.Format("{0}", reader(0)))
                If (String.IsNullOrEmpty(oMail.To)) Then
                    oMail.To = String.Format("{0}", reader(0))
                Else
                    oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                 End If
                 oMail.Display()
                 oMail.Send()
             End While
         End Using
    
    a questo punto anche questo
                If (String.IsNullOrEmpty(oMail.To)) Then
                    oMail.To = String.Format("{0}", reader(0))
                Else
                    oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                 End If
    
    si può sostituire con
    oMail.To = String.Format("{0}", reader(0))
    
    ℹ️ Leggi di più su bumm ...

  7. #7
    Joe_01 non è in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    C'è qualcosa che non quadra, perchè se metto il destinatario nel campo (Bcc) nel campo (A) mette addirittura il mio indirizzo (mittente), poi il (punto e virgola) lo ignora completamente, ovvero mette tutti gli indirizzi in fila uno dopo l'altro attaccati fra loro.
    Allego il codice completo della funzione con la speranza che possiate aiutarmi a trovare l'errore.
    P.s. i vari texbox listbox ecc. li ho messi per vedere se caricava i dati poi a fine lavoro li elimino

     
    PrivateSub btnInviaMail_M_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInviaMail_M.Click
    OutlookNamespace = OApp.GetNamespace("MAPI")
    oMail = CType(OApp.CreateItemFromTemplate(modello), Outlook.MailItem)
     
     
     
    Dim Mail = From EMail In Mail_DB.tbElencoAziende
    Dim queryString AsString = "SELECT mail FROM tbElencoAziende"
     
    tbTabella.DataSource = Mail
    IndirizzoComboBox.DataSource = Mail
     
     
    Using connection AsNew SqlConnection(connectionString)
    Using command AsNew SqlCommand(queryString, connection)
    connection.Open()
    Using reader As SqlDataReader = command.ExecuteReader()
    ' Call Read before accessing data.
    While reader.Read()
    ListBox1.Items.Add(String.Format("{0}", reader(0)))
    If (String.IsNullOrEmpty(oMail.To)) Then
    oMail.To = String.Format("{0}", reader(0))
    Else
    oMail.To = oMail.To & (String.Format("{0}", reader(0))) & ";"
    EndIf
    oMail.Display()
    'oMail.Send()
    EndWhile
    
    ' Call Close when done reading.
    reader.Close()
     
    EndUsing
    EndUsing
    EndUsing
     
     
    EndSub
    
    
    Quote Originariamente inviato da gibra Visualizza il messaggio
    L'invio dell'email lo devi fare all'interno, durante la lettura del tuo reader
    (in questo caso il ListBox potrebbe non servire, a meno che non ti serva per altri scopi).

     
        Using reader As SqlDataReader = command.ExecuteReader()
            ' Call Read before accessing data.
            While reader.Read()
                ListBox1.Items.Add(String.Format("{0}", reader(0)))
                If (String.IsNullOrEmpty(oMail.To)) Then
                    oMail.To = String.Format("{0}", reader(0))
                Else
                    oMail.BCC = oMail.BCC & (String.Format("{0}", reader(0))) & ";"
                 End If
                 oMail.Display()
                 oMail.Send()
             End While
         End Using
    

  8. #8
    L'avatar di bumm
    bumm non è in linea Very Important Person Ultimo blog: [VB2010] ComboBox ed Enumeratori
    Post
    2,140
    Blogs
    1
    Like Inviati  
    0
    Like Ricevuti  
    0
    Leggi il post #6
    ℹ️ Leggi di più su bumm ...

  9. #9
    Joe_01 non è in linea Scolaretto
    Post
    108
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da bumm Visualizza il messaggio
    Leggi il post #6

    Allora, ricapitoliamo tutto, se lascio solo la riga di codice come nel tuo post (6) va subito all'ultimo record, se modifico il codice come puoi vedere, legge il primo record e se faccio l'invio della mail manuale la invia e si ferma tutto, se decommento la riga (send) mi alza un'eccezzione (COMException non è stata gestita. L'elemento è stato spostato o eliminato) sulla riga If.........
    Allego l'ultimissima situazione di codice:

    PrivateSub btnInviaMail_M_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInviaMail_M.Click
    OutlookNamespace = OApp.GetNamespace("MAPI")
    oMail = CType(OApp.CreateItemFromTemplate(modello), Outlook.MailItem)
     
     
     
    Dim Mail = From EMail In Mail_DB.tbElencoAziende
    Dim queryString AsString = "SELECT mail FROM tbElencoAziende"
     
    tbTabella.DataSource = Mail
    IndirizzoComboBox.DataSource = Mail
     
     
    Using connection AsNew SqlConnection(connectionString)
    Using command AsNew SqlCommand(queryString, connection)
    connection.Open()
     
     
    Using reader As SqlDataReader = command.ExecuteReader()
    ' Call Read before accessing data.
    While reader.Read()
    ListBox1.Items.Add(String.Format("{0}", reader(0)))
    If (String.IsNullOrEmpty(oMail.To)) Then
    oMail.To = String.Format("{0}", reader(0))
    'Else
    'oMail.To = oMail.To & (String.Format("{0}", reader(0))) & ";"
    oMail.Display()
    oMail.Send()
    EndIf
    EndWhile
     
     
    ' Call Close when done reading.
    reader.Close()
    'MessageBox.Show("Gli inviii sono avvenuti con successo")
     
    EndUsing
    EndUsing
    EndUsing
     
     
    EndSub
    
    Ringrazio ancora per l'aiuto e la pazenza

  10. #10
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Post
    6,204
    Like Inviati  
    18
    Like Ricevuti  
    10
    Quote Originariamente inviato da Joe_01 Visualizza il messaggio
    C'è qualcosa che non quadra, perchè se metto il destinatario nel campo (Bcc) nel campo (A) mette addirittura il mio indirizzo (mittente), poi il (punto e virgola) lo ignora completamente, ovvero mette tutti gli indirizzi in fila uno dopo l'altro attaccati fra loro.
    Direi che mi pare logico così, visto il tuo codice.

    Ora, io non conosco il contenuto del tuo DataReader, ma suppongo che il campo che leggi contenga l'indirizzo e-mail, se è così allora la condizione:

    If (String.IsNullOrEmpty(oMail.To)) Then


    non sarà mai vera (ed è corretto che sia così), per cui eseguirà sempre l'istruzione

    oMail.To = oMail.To & (String.Format("{0}", reader(0))) & ";"

    Quindi l'errore sta nella logica del tuo codice.
    Siccome noi non conosciamo i criteri per cui devi mettere gli indirizzi in BCC, non possiamo aiutarti.

    ℹ️ Leggi di più su gibra ...

Discussione chiusa
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Estrarre parte di un indirizzo email
    Da rossonero nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 03-02-2016, 17:59
  2. [Outlook VBA] estrazioni di email allegate ad altre email
    Da carlo65 nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 15-11-2011, 12:46
  3. Indirizzo email in MessageBox.Show
    Da glak nel forum Visual Basic .Net
    Risposte: 15
    Ultimo Post: 29-08-2011, 23:13
  4. Indirizzo email su stampa Excel.
    Da maximum nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 17-10-2007, 10:00
  5. Validazione indirizzo email
    Da luciano.net nel forum Visual Basic 6
    Risposte: 6
    Ultimo Post: 27-09-2006, 16:59