vba cu outlook

Închis
alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

vba cu outlook

Mesaj de alcoool2 » Mie Iun 06, 2012 4:20 pm

Am un cod car ar trebui sa faca un forward automat -- numai ca este gresit-- poate ma ajutati voi sa il corectez

Cod: Selectaţi tot

Sub forwardmail(MyMail As MailItem)

Dim strID As String
    Dim objNS As Outlook.NameSpace
    Dim objMail As Outlook.MailItem
    Dim Fwd As Outlook.MailItem
    Dim subiect As String
    
strID = MyMail.EntryID
    Set objNS = Application.GetNamespace("MAPI")
        Set objMail = objNS.GetItemFromID(strID)

    subiect = objMail.Subject
      If subiect = "UL24" Then
        
      'pana aici este ok
        
       Fwd = objMail.Forward
       Fwd.Recipients.Add "adresa@server.ro"
      Fwd.Subject = "rezolvat" & subiect
       Fwd.Forward
       Fwd.Send
    End If
    
     Set objAtt = Nothing
      Set objMail = Nothing
    Set objNS = Nothing
End Sub
Multumesc!
10Q itlearning

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: vba cu outlook

Mesaj de alcoool2 » Joi Iun 07, 2012 9:54 am

Am reusit sa corectez putin dar a aparut o alta problema:
Serverul meu de mail imi spune ca nu am voie sa trimit catre adresa de forward --- de ce oare?
Daca forward-ez acel mail manual totul este ok

Cod: Selectaţi tot

Sub forwardmail(MyMail As MailItem)
Dim strID As String
    Dim objNS As Outlook.NameSpace
    Dim objMail As Outlook.MailItem

    Dim Subiect As String

strID = MyMail.EntryID
    Set objNS = Application.GetNamespace("MAPI")
    Set objMail = objNS.GetItemFromID(strID)

    Subiect = objMail.Subject

    If subiect = "UL24" Then
       objMail.To = "adresa@server.com"
       objMail.Subject = "rezolvat " & Subiect
       objMail.Send
       End If

     Set objAtt = Nothing
     Set objMail = Nothing
    Set objNS = Nothing
   
End Sub

10Q itlearning

alcoool2
Mesaje: 969
Membru din: Mie Dec 15, 2010 4:25 pm

Re: vba cu outlook

Mesaj de alcoool2 » Joi Iun 07, 2012 12:07 pm

Urmatorul cod trimite e-mailul dar cand se pune problema si de atasamente nu mai functioneaza

Cod: Selectaţi tot

Sub forwardmail(MyMail As MailItem)

    Dim strID As String
    Dim objNS As Outlook.NameSpace
    Dim objMail As Outlook.MailItem
   
    Dim Subiect As String
      
    Dim olApp As Outlook.Application
    Dim objMail2 As Outlook.MailItem
    
    Set olApp = Outlook.Application
    Set objMail2 = olApp.CreateItem(olMailItem)
    
    strID = MyMail.EntryID
    
    Set objNS = Application.GetNamespace("MAPI")
    Set objMail = objNS.GetItemFromID(strID)
    
    Subiect = objMail.Subject

    If Left(Subiect, 4) = "UL24" Then
        
        'daca acest for dispare codul functioneaza fara atasamente
        For c = 1 To objMail.Attachments.Count
            objMail2.Attachments.Add objMail.Attachments(c)
        Next
        
        With objMail2
            .Subject = Subiect & " rezolvat 1"
            .Body = objMail.Body
            .To = ("adresa@server.ro")
            .Send
        End With
    End If
    
     Set objMail = Nothing
     Set objMail2 = Nothing
     Set objNS = Nothing
     Set olApp = Nothing
   
End Sub
Ideea codului este sa creeze un mesaj nou cu datele din e-mail-ul primit
10Q itlearning

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: vba cu outlook

Mesaj de Dr.Windows » Lun Iul 02, 2012 11:16 am

Atentie la cod - stiu ca foloseam la un moment dat un cont de Google si este "case sensitive".
In ultimul tau exemplu - daca vrei un mesaj NOU nu forward la cel primit atunci trebuie sa salvezi atasamentele undeva si apoi sa le "re-atasezi".

Închis

Înapoi la “Visual Basic for Application (VBA) - Intrebari tehnice”