Invia Report sul body della mail

di il
5 risposte

Invia Report sul body della mail

Salve a tutti!

Nel mio DB uso questo codice molto utile per inserire un Report o una Form direttamente nel body di una Mail:
    Dim oFilesys, oTxtStream As Object
    Dim txtHTML As String
    Dim olApp As Outlook.Application
    Dim objMail As Outlook.MailItem
    
    DoCmd.OutputTo acOutputForm, Me.Name, acFormatHTML, CurrentProject.Path & "\MiaCartella\" & strReportName & ".HTML", False

    Set oFilesys = CreateObject("Scripting.FileSystemObject")
    Set oTxtStream = oFilesys.OpenTextFile(CurrentProject.Path & "\MiaCartella\" & strReportName & ".HTML", 1)
    
    txtHTML = oTxtStream.ReadAll
    
    oTxtStream.Close
    
    Set oTxtStream = Nothing
    Set oFilesys = Nothing
    
    Set olApp = Outlook.Application
    Set objMail = olApp.CreateItem(olMailItem)
    
    With objMail
        .BodyFormat = olFormatHTML
        .HTMLBody = txtHTML
        .Recipients.Add "pippo@pippo.com"
        .Subject = "Soggetto"
        .Display
    End With
    
    Set olApp = Nothing
    Set objMail = Nothing
Il problema è che non so in che modo inserire nel codice un testo aggiuntivo da mettere subito dopo HTMLBody e non so neanche come mettere altre mail in CC

Qualcuno saprebbe aiutarmi per favore?

Grazie a tutti!!

5 Risposte

  • Re: Invia Report sul body della mail

    Ci sono 2 modi per costruire l'elenco dei destinatari.
    Uno è usare le proprietà standard:
    
    With OutMail
            .To = "Tuo Elenco Destinatari Diretti con Separatore [;]"
            .CC =  "Tuo Elenco Destinatari PerConoscenza con Separatore [;]"
            .BCC =  "Tuo Elenco Destinatari PerConoscenza Nascosat con Separatore [;]"
    ....
    Quello che usi tu è un metodo sempre valido, ma ti è sfuggita una particolarità che viene impostata di Default nel Recipeint che hai usato, ovvero la Collection Recipients associata all'Oggetto MailItem.
    Questo Recipients di Default prende la proprietà Type=olTo.
    Le Opzioni sono queste:
    
    olBCC 	3 	The recipient is specified in the BCC property of the Item.
    olCC 	2 	The recipient is specified in the CC property of the Item.
    olOriginator 	0 	Originator (sender) of the Item.
    olTo 	1 	The recipient is specified in the To property of the Item.
    Quindi nel tuo codice devi assegnare al Recipients il Type:
    
    Dim mRcpTo  As Outlook.Recipient
    Dim mRcpCC  As Outlook.Recipient
    
    Set mrcpTp=.Recipients.Add "pippo@pippo.com"
    Set mRcpTo.Type=olTo
    
    Set mRcpC =.Recipients.Add "mail2CC@mail.it"
    Set mRcpCC.Type=olCC 	
    ....
  • Re: Invia Report sul body della mail

    Grazie mille Alex!
    E per integrare del testo subito dopo il body HTML?

    Grazie mille per l'aiuto!
  • Re: Invia Report sul body della mail

    Concatena la prima parte con il testo che desideri...
    È ovvio che se costruisci il testo in html viene meglio, ma devi sapere cosa significa quindi devi capire come funziona la.scrittura html minimal.
  • Re: Invia Report sul body della mail

    Io ho scritto così:

    .HTMLBody = txtHTML & "mio testo"

    ma purtroppo il "mio testo" non lo visualizzo nella Mail...

    Dove sto sbagliando?
  • Re: Invia Report sul body della mail

    Https://www.html.it/pag/19264/la-sintassi-di-html5

    Devi comporre la stringa minimal ma serve... dai una letta al link sopra.
Devi accedere o registrarti per scrivere nel forum
5 risposte