Mittente di cassetta condivisa



  • Mittente di cassetta condivisa
    di Carletto (utente non iscritto) data: 30/03/2015 14:42:37

    Ciao a tutti!
    qualche tempo fa vi avevo chiesto consiglio per una macro che mi consentisse di inviare più mail in automatico, e con il vostro preziosissimo consiglio sono riuscito ad implementarla! :)
    Ora ritorno con un altro problema.
    Sono stato abilitato ad una cassetta condivisa (utilizzo Microsoft Outlook 2010), dalla quale posso anche inviare messaggi selezionando l'indirizzo dal campo "Da:" quando apro un nuovo messaggio.
    Vorrei implementare questa opzione nel codice originario che posto di seguito: ero convinto bastasse specificare il campo .from (come ho fatto nell'esempio) ma non funziona perché la mail parte comunque dall'indirizzo predefinito del mio account.
    Specifico se non fosse stato chiaro: non ho due account diversi, ne ho solo uno abilitato a più cassette di posta.

    Qualcuno riesce per favore ad aiutarmi?
    Grazie in anticipo!
     
    Option Explicit
    
    Sub Inviamail(mail As String, file As String, ccmail As String, j As Integer, conta As Integer, rng As Range)
    
    
        Dim OutApp As Object
        Dim OutMail As Object
        Dim bodymail As String
        
            Set OutApp = CreateObject("Outlook.Application")
            OutApp.Session.Logon
            Set OutMail = OutApp.CreateItem(0)
            firma = "C:Users" & fUserName() & "AppDataRoamingMicrosoftSignatures" & Cells(j, 16)
        If Dir(firma) <> "" Then
            Sign = GetBoiler(firma)
        Else
            Sign = ""
        End If
     
            On Error Resume Next
            With OutMail
                .from = "indirizzocassetta@condivisa.com"
                .To = mail
                .cc = Trim(ccmail)
                .Subject = Cells(2, 12) & " " & Cells(3, 13)
                .BodyFormat = olFormatHTML
                bodymail = ""
                bodymail = bodymail + Cells(2, 13) + "
    " + Cells(3, 13) + "
    " bodymail = bodymail + "
    " + RangetoHTML(rng) + "

    " bodymail = bodymail + Cells(4, 13) + "
    " bodymail = bodymail + Cells(5, 13) + "
    " bodymail = bodymail + Cells(6, 13) .HTMLbody = bodymail + "


    " + Sign .Send End With On Error GoTo errore Cells(j, 14) = "INVIATA !" With Application .EnableEvents = True .ScreenUpdating = True End With Set OutMail = Nothing Set OutApp = Nothing Exit Sub errore: Cells(j, 14) = "ERRORE !" End Sub ----------------- Option Explicit Sub Pulsante1_Click() Dim mail As String Dim file As String Dim ccmail As String Dim j As Integer Dim conta As Integer Dim rng As Range Range("N2:N100000").ClearContents j = 2 While Trim(Cells(j, 1)) <> "" conta = Application.WorksheetFunction.CountIf(Range("B:B"), Cells(j, 2)) Set rng = Range(Cells(j, 3), Cells(j + conta - 1, 8)) mail = Cells(j, 9) ccmail = Cells(j, 10) Inviamail mail, file, ccmail, j, conta, Union(Range("C1:H1"), rng) j = j + conta Wend End Sub



  • di Luca73 data: 30/03/2015 16:30:31

    Se vai in outlook, in sviluppo visula basic a apri un modulo, chiedi aiuto su MailItem e puoi farti dare tutti i metodi e proprietà. in particolare dovrebbe essere uno dei seguenti:
    1) Sender Restituisce o imposta un oggetto AddressEntry che corrisponde all'utente dell'account da cui viene inviato l'oggetto MailItem. Propriet¢ di lettura/scrittura.
    2) SendUsingAccount Restituisce o imposta un oggetto Account che rappresenta l'account con il quale deve essere inviato l'oggetto MailItem. Proprietà di lettura/scrittura.

    se noti non esiste from ma sender

    Ciao
    LT






  • di Carletto (utente non iscritto) data: 30/03/2015 17:17:56

    Ciao Luca73,
    scusami ma avrei bisogno di chiarimenti: cioè ho provato a modificare il codice togliendo il .from e inserendo il SendUsingAccount ma continua a non funzionare.
    Per favore potresti spiegarmi ancora dov'è il mio errore?
    Grazie per la pazienza!
     
    With OutMail
                .Sendusingaccount = "indirizzocassetta@condivisa.com"
                .To = mail
                .cc = Trim(ccmail)
                .Subject = Cells(2, 12) & " " & Cells(3, 12)
                .BodyFormat = olFormatHTML
                bodymail = ""
                bodymail = bodymail + Cells(2, 13) + "
    " + Cells(3, 13) + "
    " bodymail = bodymail + "
    " + RangetoHTML(rng) + "

    " bodymail = bodymail + Cells(4, 13) + "
    " bodymail = bodymail + Cells(5, 13) + "
    " bodymail = bodymail + Cells(6, 13) .HTMLbody = bodymail + "


    " + Sign .Send



  • di Carletto (utente non iscritto) data: 31/03/2015 12:07:45

    Son convinto che la cosa sia abbastanza semplice, eppure non riesco a capire come fare..



  • di Carletto (utente non iscritto) data: 31/03/2015 17:05:54

    mea culpa, ho fatto un po' di ricerca e ho risolto con
    .SentOnBehalfOfName = """Nome mittente"""
    Grazie mille lo stesso ;)