Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Prüfung welche Email benutzt wurde für den Versand
#1
Guten Morgen,

Ich brauche einen code um zu prüfen ob von eine bestimmte E-Mail Adresse die email geschrieben wird.

Es soll also geprüft werden "wenn von Email x@x.de versandt werden soll dann soll Makro starten durch den Befehl Fall ansonsten soll nichts passieren.

Könnt ihr mir da weiter helfen? Bin verzweifelt am suchen und finde nichts.

Was ich damit erreichen will ist, dass wenn ich eine bestimmte E-Mail versenden mit dem Makro eine Abfrage starten soll ob ich die E-Mail weiterleiten möchte oder nicht. Wenn ja dann folgt ein weiterer gefehlt, der mir automatisch die E-Mail so vorbereitet, dass ich lediglich im Betreff noch was ergänzen muss.

Mir fehlt lediglich den Code für die Prüfung.

Danke im voraus.

Gruß 
Mando
Antworten Top
#2
Folgenden Code habe ich:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
 
     intAntwort = MsgBox("soll die Email Archiviert werden?", vbOKCancel)
 
    Select Case intAntwort
    
       Case vbOK
 
           Call test
 
        Case vbChancel
 
            'nix
 
    End Select
    
End Sub




Und dann soll das passieren;

Sub test()
 
Dim objMail_In As MailItem
Dim objMail_Out As MailItem
 
 
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set myItem = ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set myItem = ActiveInspector.CurrentItem
Case Else
End Select
 
 
Set objMail_In = myItem
Set objMail_Out = objMail_In.Forward
 
With objMail_Out
.To = "xx@x.de" 'Empfänger
.Subject = objMail_In.Subject & "; BAS 51; "
.Display
End With
 
End Sub
 

Das soll alles geschehen wenn eine Email von x@x.de geschrieben wird.
Antworten Top
#3
Hallöchen,

also, meinst Du wirklich "von" geschrieben und nicht "an"?
Dein Code läuft wenn ein Objekt gesendet wird.
Eine Prüfung könnte so aussehen:

If Item.To = "...gmx..." then
'Dein restlicher Code
End If

Wenn es generell um gmx geht, dann vielleicht so
If Item.To Like "*gmx*" Then
...

oder eben From statt To
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 
 
   If item.to = "x@x.de" then

  intAntwort = MsgBox("soll die Email Archiviert werden?", vbYesNo)
 
    Select Case intAntwort
    
       Case vbYes
 
           Dim objMail_In As MailItem

           Dim objMail_Out As MailItem

 

 

          Select Case TypeName(Application.ActiveWindow)

          Case "Explorer"

          Set myItem = ActiveExplorer.Selection.Item(1)

          Case "Inspector"

          Set myItem = ActiveInspector.CurrentItem

          Case Else

          End Select

 

 

Set objMail_In = myItem

Set objMail_Out = objMail_In.Forward

 

With objMail_Out

.To = "xx@x.de" 'Empfänger

.Subject = objMail_In.Subject & "; BAS 51; "

.Display
End With
 
        Case vbNo
 
          
 
    End Select
End if
    
End Sub



So lautet der Code aber der geht nicht. Ich benutze 2 Konten ein um interne E-Mails zu schreiben und ein für externe E-Mails und wenn ich externen Konto auswähle (Beispiel: service@x.de) für er die Anfrage nicht ob ich die E-Mail weiterleiten soll. Wo liegt der Fehler?
Antworten Top
#5
Hallöchen,

um erst mal festzustellen, ob es an der Bedingung liegt, kannst Du ja erst mal was ganz einfaches testen:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Willst Du " & Item.Subject & " senden?", vbYesNo) = vbNo Then
Cancel = True
End If
End Sub

Das sollte dann bei jeder email in jedem Konto wirken. Den Code hast Du auch in ThisOutlookSession?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
(10.07.2017, 20:20)schauan schrieb: Hallöchen,

um erst mal festzustellen, ob es an der Bedingung liegt, kannst Du ja erst mal was ganz einfaches testen:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Willst Du " & Item.Subject & " senden?", vbYesNo) = vbNo Then
 Cancel = True
End If
End Sub

Das sollte dann bei jeder email in jedem Konto wirken. Den Code hast Du auch in ThisOutlookSession?

Hallo, 
Danke für die Rückmeldung.
Der Code funktioniert egal mit welche Email ich das benutze. Das nutze ich jetzt bereits und ja es ist unter ThisOutlookSession.

Blöd ist nur, dass wenn ich dann auch weiterleite, erneut die Abfrage erfolgt, was unnötig ist. Deshalb will ich nur, dass die Abfrage kommt wenn ich nach außen kommuniziere, also wenn ich die angehende Email auswähle.
Antworten Top
#7
Wenn ich den deine Ergänzung hinzufüge, dann funktioniert der Code nicht, bzw. Es erfolgt keine Abfrage und es gibt auch keine Fehlermeldung.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste