Automatyczna odpowiedź z uzyciem pola Reply-to

Pytania, problemy, uwagi związane ze starszymi wersjami Microsoft Outlook 2003, 2002 (XP), 2000, 98

Moderator: Moderatorzy

Automatyczna odpowiedź z uzyciem pola Reply-to

Postprzez Rumunek » Wt 09.10.2007 15:08

Witam,
Szukam od dłuższego czasu rozwiązania problemu w Outlook 2003:
Otrzymuję mail gdzie nadawca to X - ale w polu Reply-to jest Y

Kiedy odpowiadam na ten mail ręcznie - odpowiedź jest kierowana do Y, niestety, kiedy uzywam reguł - odpowiedź zawsze jest na adres X.


Czy ktoś jest w stanie mi pomóc? jakieś makro (niestety ich tworzenie przekracza moje umiejętności).

Ręczne odpowiadanie na kilkadziesiąt identycznych maili z identyczną odpowiedzią jest naprawdę męczące.

Z góry dziękuję za wszelkie podpowiedzi.
Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Postprzez Rumunek » Wt 09.10.2007 21:42

Dodam jeszcze tylko, że jest to dla mnie tak istotna sprawa, że jestem nawet skłonny zapłacić twórcy takiego makra - dziennie kilkadziesiąt identycznych maili z identyczną odpowiedzią - już mi się to śni po nocach.
Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Postprzez OShon » Wt 09.10.2007 22:31

Podczep kilka screanów - bo nie wiadomo za co sie złapać.
-czy reguła odpowiada na inne osoby niż nadawca miala .. ?
-czy chodzi o niezgodność w wyświetlaniu adresów vs nazwa FullName
-jak wygląda reguła ...

jak możesz jaśniej
Obrazek
Oskar Shon - MVP Office Dev. 11/20, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10348
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Postprzez Rumunek » Wt 09.10.2007 23:26

Już wyjaśniam.
Allegro wysyła do mnie powiadomienie np o sprzedaniu przedmiotu. W polu nadawca jest powiadomienia@allegro.pl a w polu Reply-to jest wpisany adres użytkownika, który kupił.

Odpowiadając na mail ręcznie - moja odpowiedź kierowana jest do kupującego. Kiedy uzywam reguły z warunkami od określonych nadawców i zawierających określone słowa w temacie + akcja: odpowiedz na nią wykorzystując szablon - odpowiedź jest kierowana pod adres powiadomienia@allegro.pl zamiast do kupującego.

I tu tkwi cały problem z którym meczę się juz od dawna. Jak na razie odpowiadam ręcznie, ale to jest juz strasznie frustrujące i czasochłonne.
Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Postprzez Shon Oskar » Śr 10.10.2007 08:19

Teraz jasne
Allegro podmienia adres Odpowiedz do (dla użytkownika aukcji) wysyłając ze swojego adresu, gdzie zwykle odpowiedz do a adres nadawcy jest identyczny.

No to spróbujemy pomyśleć...
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Śr 10.10.2007 08:57

Kilka podpowiedzi:

Przychodzące wiadomości można wykrywać zdarzeniem:
Application_NewMailEx
Albo można bezpośrednio z reguł uruchamiać makro, wtedy będzie załatwione filtrowanie po nadawcach i słowach w tytule.

Adresy ReplyTo powinny znajdować się w kolekcji ReplyRecipients obiektu MailItem.

Nową wiadomość można utworzyć z szablonu funkcją CreateItemFromTemplate obiektu Application.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Śr 10.10.2007 10:09

Właśnie.. gdzieś to już raz podawałeś
Moim zdaniem lepiej zamienić adres nadawcy z adresem odpowiedzi i zapisać wiadomość - a ta sama reguła będzie działała poprawnie.

Choć nie mam koło siebie O2003 powinno to tak wyglądać

Kod: Zaznacz cały
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)

    Dim oMail As MailItem
    Dim nIndex, strIDs
    strIDs = Split(EntryIDCollection, ",")
   
    For nIndex = 0 To UBound(strIDs)
        Set oMail = Application.GetNamespace("MAPI").GetItemFromID(strIDs(nIndex))

with oMail
If .SenderEmailAddress like "powiadomienia@allegro.pl" then       
   .SenderEmailAddress = .ReplyRecipients ' można sprawdzić z .Recipients(1).Address
   .Save
end if
end with
        Set oMail = Nothing
    Next

End Sub


Makro należy umieścić w ThisOutlookSesion
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Śr 10.10.2007 11:12

A dlaczego ustawiasz SenderEmailAddress na ReplyRecipients?
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

Postprzez Shon Oskar » Śr 10.10.2007 12:09

Po co generować maila z odpowiedzią skoro tworzy to już reguła.
Ważne aby zamienić Adresata wiadomości na adres do odpowiedzi.
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez Rumunek » Śr 10.10.2007 12:20

Bład mi wyskakuje przy debugowaniu.
w linii:
.SenderEmailAddress = .ReplyRecipients ' można sprawdzić z .Recipients(1).Address

Podświetla to co zaznaczyłem na niebiesko i wyświetla komunikat:
Compile errror: Can't assign to read-only property.

Zabezpieczenia ustawione na NISKIE.
Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Postprzez Shon Oskar » Śr 10.10.2007 12:29

Nie to nie poziom zabezpieczeń.
To parametr tylko do odczytu - z czego wynika nie można nadpisać nic na tą pozycje.
Niestety albo michu, albo w domu sprawdzę (wieczorem).
Nie mam tutaj 2k3 wiec nie na wojuje
:oops:
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez michu » Śr 10.10.2007 13:07

Po co generować maila z odpowiedzią skoro tworzy to już reguła.
Ważne aby zamienić Adresata wiadomości na adres do odpowiedzi.

Jeśli dalej jest reguła odpowiadająca na wiadomości, to Ty nie masz żadnego dostępu do wysyłanej w ten sposób wiadomości. Regułę trzeba zupełnie usunąć, albo zrobić nową, która będzie uruchamiała makro dla określonych przychodzących wiadomości - ale nie będzie odpowiadać żadnym szablonem.
Pozdrawiam
Michu
michu
 
Posty: 4190
Dołączył(a): N 05.02.2006 17:49
Lokalizacja: Jelenia Góra

makro

Postprzez jacek_s » Cz 11.10.2007 07:46

Witam,
oto kod makra:

Kod: Zaznacz cały
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
  strIDs = Split(EntryIDCollection, ",")
   
  Dim oMail As MailItem
   
  Dim oNameSpace As NameSpace
  Set oNameSpace = Application.GetNamespace("MAPI")
   
  For nIndex = 0 To UBound(strIDs)
    Set oMail = oNameSpace.GetItemFromID(strIDs(nIndex))
   
    If oMail.SenderEmailAddress = "powiadomienia@allegro.pl" And _
       oMail.Subject Like "*Aukcja*" Then
      Dim oNewMail As MailItem
      Set oNewMail = Application.CreateItemFromTemplate("c:\szablon.oft")
         
      For iPos = 1 To oMail.ReplyRecipients.Count
        oNewMail.Recipients.Add (oMail.ReplyRecipients.Item(iPos).Address)
      Next
     
      oNewMail.Send
    End If
  Next

End Sub



Ważna uwaga: jeżeli chodzi o wiersz

Kod: Zaznacz cały
oMail.Subject.Like "*Aukcja*" Then


to porównywanie odbywa się z uwzględnieniem wielkości liter, więc jak byłoby w temacie 'aukcja' to trzeba zmienić w makrze z *Aukcja* na *aukcja* .

Treść odpowiedzi jest w tym przykładzie oczywiście w pliku c:\szablon.oft.

Reguła z automatyczną odpowiedzią powinna być usunięta.
jacek_s
 
Posty: 6
Dołączył(a): Wt 25.09.2007 08:31

Re: makro

Postprzez Rumunek » Cz 11.10.2007 09:58

jacek_s napisał(a):Witam,
oto kod makra:

.......

Reguła z automatyczną odpowiedzią powinna być usunięta.


Wygląda na to, że działa. Rewelacja jak dla mnie i moja dozgonna wdzięczność.

Jedyne co mnie jeszcze tylko gnębi, to to, że usuwany jest tytuł maila (sprawdzę, czy tytuł jaki zapiszę w szablonie będzie uwzględniony)
oraz brak dołaczonej treści maila na który makro odpowiada.

I jeszcze pytanie. Czy chcąc zastosować kolejny warunek i kolejny szablon wystarczy skopiowanie fragmentu od IF do NEXT i oczywiście określenie innego warunku porównania w tytule oraz innego szablonu?
Czyli coś takiego:

Kod: Zaznacz cały
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
  strIDs = Split(EntryIDCollection, ",")
   
  Dim oMail As MailItem
   
  Dim oNameSpace As NameSpace
  Set oNameSpace = Application.GetNamespace("MAPI")
   
  For nIndex = 0 To UBound(strIDs)
    Set oMail = oNameSpace.GetItemFromID(strIDs(nIndex))
   
    If oMail.SenderEmailAddress = "powiadomienia@allegro.pl" And _
       oMail.Subject Like "*Aukcja*" Then
      Dim oNewMail As MailItem
      Set oNewMail = Application.CreateItemFromTemplate("c:\szablon.oft")
         
      For iPos = 1 To oMail.ReplyRecipients.Count
        oNewMail.Recipients.Add (oMail.ReplyRecipients.Item(iPos).Address)
      Next

    If oMail.SenderEmailAddress = "powiadomienia@allegro.pl" And _
       oMail.Subject Like "*komentarz*" Then
      Dim oNewMail As MailItem
      Set oNewMail = Application.CreateItemFromTemplate("c:\szablon2.oft")
         
      For iPos = 1 To oMail.ReplyRecipients.Count
        oNewMail.Recipients.Add (oMail.ReplyRecipients.Item(iPos).Address)

      Next
     
      oNewMail.Send
    End If
  Next

End Sub

Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Postprzez Shon Oskar » Cz 11.10.2007 10:35

If to warunek zamykający (jak klamra - musi być domknięty tyle razy ile otwarty) lub można zastosować wiele warunków wstawiając elseif zamykając end if

Najprościej będzie tak: dokonaj zmian
2ie IF na ElseIF
i po pierwszym Next zapomniałeś dodać oNewMail.Send
Usuń 1dną deklaracje stałej "Dim oNewMail As MailItem" i przenieś ją pow warunków if, aby obydwa warunki z niej korzystały (2x być nie mogą w jednej procedurze).
O'Shon
Shon Oskar
 
Posty: 182
Dołączył(a): Pn 16.10.2006 09:05
Lokalizacja: Veracomp S.A.

Postprzez Rumunek » Wt 16.10.2007 11:29

Jeszcze raz chciałem podziękować wszystkim za naprawdę cenną pomoc - wszystko działa wyśmienicie.

Jestem dozgonnie wdzięczny.
Rumunek
 
Posty: 6
Dołączył(a): Wt 09.10.2007 14:35

Re: Automatyczna odpowiedź z uzyciem pola Reply-to

Postprzez IQ9999 » Wt 29.11.2016 17:57

Witam, wiem, że ten temat jest stary, ale staram się rozwiązać tą samą sytuację.

Jestem początkujący i niewiele wiem o Visualu.

Mój kod wygląda tak:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
strIDs = Split(EntryIDCollection, ",")

Dim oMail As MailItem

Dim oNameSpace As NameSpace
Set oNameSpace = Application.GetNamespace("MAPI")

For nIndex = 0 To UBound(strIDs)
Set oMail = oNameSpace.GetItemFromID(strIDs(nIndex))

If oMail.SenderEmailAddress = "powiadomienia@payu.pl" And _
oMail.Subject Like "*Nowa wpłata od Kupującego*" Then
Dim oNewMail As MailItem
Set oNewMail = Application.CreateItemFromTemplate("C:\Users\Krzysiek\Documents\resppom.oft")

For iPos = 1 To oMail.ReplyRecipients.Count
oNewMail.Recipients.Add (oMail.ReplyRecipients.Item(iPos).Address)
Next

oNewMail.Send
End If
Next

End Sub


Przetestowałem skrypt wysyłając do siebie e-mail, zamieniając w skrypcie "powiadomienia@payu.pl' na własny e-mail i dostałem odpowiedź od Outlooka, że nie wie komu odpowiedzieć, przycisk "Debuguj" po którym otwiera się okno skryptu z podświetloną linijką "oNewMail.Send". Dodatkowo responder odpowiada tylko, jeżeli wiadomość w temacie brzmi "Nowa wpłata od Kupującego", a już nie, gdy jest tam więcej znaków (np. Nowa wpłata od Kupującego Ziomek36").

Obrazek

Mógłby ktoś pomóc jak coś takiego zrobić?

Zwykłe makro nie działa gdyż nadawca to "powiadomienia@payu.pl", chociaż klikając "odpowiedz" w polu adresu jest już właściwy e-mail klienta.

Z góry dziękuję
IQ9999
 
Posty: 3
Dołączył(a): Wt 29.11.2016 17:33

Re: Automatyczna odpowiedź z uzyciem pola Reply-to

Postprzez IQ9999 » Wt 29.11.2016 22:19

Niestety tkwię w martwym punkcie. Gdyby Allegro nie zastępowało e-maili klientów swoim e-mailem problemu nie byłoby w ogóle. Kwestią jest jak to ominąć.
IQ9999
 
Posty: 3
Dołączył(a): Wt 29.11.2016 17:33

Re: Automatyczna odpowiedź z uzyciem pola Reply-to

Postprzez OShon » Śr 30.11.2016 09:06

Wykonałem dodatek realizujący ten cel. Auto DW lub UDW
Polecam.
Obrazek
Oskar Shon - MVP Office Dev. 11/20, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10348
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl


Powrót do Microsoft Outlook

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości