none
Informazione sull'invio di mail da Vb6 verso Outlook RRS feed

  • Domanda

  • Salve a tutti,

    ho una domanda da porre alla vostra cortese attenzione:

    Il mio problema era di mandare nella casella di posta in uscita di outlook delle mail

    costruendole in VB6, in relazione a parametri passati da codice.

    Ecco, sono riuscito a fare ciò, usando l' oggetto OutLook.Application, ma mi sono accorto in fase di collaudo,

    che all'atto dell'invio della posta verso outlook comparivano dei messaggi di alert, che io vorrei sinceramente evitare.

    Da qui, è nata l'esigenza di usare un componente esterno, che mi consentisse ciò; ho adoperato la dll Redemption.dll, con questo codice:

     

    Private Function TestEmail() As Boolean
       
        Dim Msg, Session, Outbox, Application As Object
       
       
        Set Application = CreateObject("Outlook.Application")
       
        Set Session = CreateObject("Redemption.RDOSession")
       
        Session.MAPIOBJECT = Application.Session.MAPIOBJECT
       
        Set Outbox = Session.GetDefaultFolder(olFolderOutbox)
       
        Set Msg = Outbox.Items.Add("IPM.Mail")
       
        Msg.Sent = True 'can only do this before the first Save()
       
        Msg.Subject = m_strSubject
        Msg.To = Trim$(m_strRecipientAddress)
        Msg.Body = m_strMessage
        Msg.Attachments.Add m_strFileName
       
        Msg.UnRead = True

        'sent/received dates
        Msg.SentOn = Now
        Msg.ReceivedTime = Now

        'sender related props
        Msg.Sender = Session.CurrentUser
        Msg.SentOnBehalfOf = Session.CurrentUser
       
        'all done, save
        Msg.save

    End Function

    Questa funzione, correttamente salva il messaggio che io costruisco in VB6, in OutLook (nella OutBox), quello

    che però non mi va, è che per inviare i messaggi da questa cartella, debbo aprire uno ad uno i messaggi e cliccare invia,

    mentre io speravo, di cliccare sul pulsante invia-ricevi di outlook ed inviarli tutti in un solo colpo.

     

    Sapete darmi un suggerimento, magari un altro modo di procedere?

     

    grazie in anticipo per gli eventuali suggerimenti

     

    giovedì 7 luglio 2011 17:09

Risposte

  • Credo di avere risolto in questa maniera:

     

    Private Sub SendEmailViaOutlookWithRedemption()
        
        '11072011, invio email con Redemption.dll, per evitare popup di alert da Outlook
        Dim Msg, session, Outbox, Application As Object
       
        Set Application = CreateObject("Outlook.Application")
       
        Set session = CreateObject("Redemption.RDOSession")
       
        session.MAPIOBJECT = Application.session.MAPIOBJECT
       
        Set Outbox = session.GetDefaultFolder(olFolderOutbox)
       
        Set Msg = Outbox.Items.Add("IPM.Mail")
       
        Msg.Sent = True 'can only do this before the first Save()
       
        Msg.Subject = m_strSubject
        Msg.To = Trim$(m_strRecipientAddress)
        Msg.Body = m_strMessage
        Msg.Attachments.Add m_strFileName
       
        'Msg.UnRead = True

        'sent/received dates
        Msg.SentOn = Now
        'Msg.ReceivedTime = Now

        'sender related props
        Msg.Sender = session.CurrentUser
        Msg.SentOnBehalfOf = session.CurrentUser
        'Msg.SentOnBehalfOfName = "Test invio email with redemption"
       
        'Msg.Move (session.GetDefaultFolder(olFolderOutbox))
        Msg.ReadReceiptRequested = True
       
        'all done, save
        Msg.save
        Msg.Send

    End Sub

    • Contrassegnato come risposta AngeloF mercoledì 13 luglio 2011 13:43
    mercoledì 13 luglio 2011 13:43