{"id":54162,"date":"2023-08-19T09:39:23","date_gmt":"2023-08-19T08:39:23","guid":{"rendered":"https:\/\/ekiwi-blog.de\/54162\/vba-outlook-macro-automatically-execute-on-email-receipt\/"},"modified":"2023-08-19T09:44:26","modified_gmt":"2023-08-19T08:44:26","slug":"vba-outlook-macro-automatically-execute-on-email-receipt","status":"publish","type":"post","link":"https:\/\/ekiwi-blog.de\/en\/54162\/vba-outlook-macro-automatically-execute-on-email-receipt\/","title":{"rendered":"VBA Outlook macro automatically execute on email receipt"},"content":{"rendered":"<p>If you want to process an e-mail directly in Outlook with <abbr title=\"Visual Basic for Application\">VBA<\/abbr>, for example, move it after it has arrived in the inbox, you can often use Outlook&#8217;s rules for this.<\/p>\n<p>However, for special requirements, such as <a title=\"VBA macro for automatic saving of e-mail attachments for Outlook\" href=\"https:\/\/ekiwi-blog.de\/en\/51740\/vba-save-e-mail-attachment\/\">automatic saving of attachments<\/a>, the Outlook rules quickly reach their limits. This is because a VBA macro is usually used for such functionalities.<\/p>\n<p>In earlier versions of Outlook, it was still possible to set <em>Execute a script in the Outlook rules after receiving a message from<\/em><strong>.<\/strong> But this has been done away with for security reasons. According to some forums, you can enable this again by going to the registry editor and setting the <em>EnableUnsafeClientMailRules<\/em> key to 1.<\/p>\n<blockquote><p>HKEY_CURRENT_USER\\Software\\Microsoft\\Office\\16.0\\Outlook\\Security.<br \/>\nDWORD: EnableUnsafeClientMailRules<br \/>\nValue: 1<\/p><\/blockquote>\n<p>With my Outlook365, however, this solution was already no longer available.<br \/>\n\n<div class=\"aawp\">\n\n            \n            \n<div class=\"aawp-product aawp-product--horizontal\"  data-aawp-product-asin=\"3836269236\" data-aawp-product-id=\"113395\" data-aawp-tracking-id=\"ekiwide0b-21\" data-aawp-product-title=\"Microsoft Office 365  Das umfassende Handbuch f\u00fcr Administratoren F\u00fcr alle Business- und Enterprise-Editionen geeignet\">\n\n    \n    <div class=\"aawp-product__thumb\">\n        <a class=\"aawp-product__image-link\"\n           href=\"https:\/\/www.amazon.de\/dp\/3836269236?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1\" title=\"Microsoft Office 365: Das umfassende Handbuch f\u00fcr...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            <img decoding=\"async\" class=\"aawp-product__image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/51T7ZJXbSsL._SL160_.jpg\" alt=\"Microsoft Office 365: Das umfassende Handbuch f\u00fcr...\"  \/>\n        <\/a>\n\n            <\/div>\n\n    <div class=\"aawp-product__content\">\n        <a class=\"aawp-product__title\" href=\"https:\/\/www.amazon.de\/dp\/3836269236?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1\" title=\"Microsoft Office 365: Das umfassende Handbuch f\u00fcr...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            Microsoft Office 365: Das umfassende Handbuch f\u00fcr...        <\/a>\n        <div class=\"aawp-product__description\">\n                    <\/div>\n    <\/div>\n\n    <div class=\"aawp-product__footer\">\n\n        <div class=\"aawp-product__pricing\">\n            \n                            <span class=\"aawp-product__price aawp-product__price--current\">69,90 EUR<\/span>\n            \n                    <\/div>\n\n                <a class=\"aawp-button aawp-button--buy aawp-button--icon aawp-button--icon-black\" href=\"https:\/\/www.amazon.de\/dp\/3836269236?tag=ekiwide0b-21&#038;linkCode=ogi&#038;th=1&#038;psc=1\" title=\"Buy on Amazon\" target=\"_blank\" rel=\"nofollow noopener sponsored\">Buy on Amazon<\/a>\n            <\/div>\n\n<\/div>\n\n    \n<\/div>\n<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of content<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ekiwi-blog.de\/en\/54162\/vba-outlook-macro-automatically-execute-on-email-receipt\/#Execute_macro_after_email_arrives_in_inbox\" >Execute macro after email arrives in inbox<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ekiwi-blog.de\/en\/54162\/vba-outlook-macro-automatically-execute-on-email-receipt\/#Using_VBA_Application_NewMailEx\" >Using VBA Application_NewMailEx()<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Execute_macro_after_email_arrives_in_inbox\"><\/span>Execute macro after email arrives in inbox<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Microsoft recommends at this point to rely on the <a title=\"official Microsoft documentation on the NewMail event\" href=\"https:\/\/learn.microsoft.com\/en-us\/office\/vba\/api\/outlook.application.newmail\">NewMail event<\/a> or better yet <a title=\"official Microsoft documentation on the NewMailEx event\" href=\"https:\/\/learn.microsoft.com\/en-us\/office\/vba\/api\/outlook.application.newmailex\">NewMailEx event<\/a>. This will allow you to <a title=\"VBA macro: Automatically add a file attachment to an e-mail message\" href=\"https:\/\/ekiwi-blog.de\/49250\/vba-makro-datei-anhang-einer-e-mail-nachricht-automatisch-hinzufuegen\/\">process e-mails automatically<\/a> using VBA when they are received in the inbox. For example, it is possible to automatically print an email attachment if it comes from a certain sender, immediately the moment the e-mail arrives.<\/p>\n<p>This can be used to solve many automation tasks without having to make umpteen clicks.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Using_VBA_Application_NewMailEx\"><\/span>Using VBA Application_NewMailEx()<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In the VBA code below is the basic framework for running a macro when an email arrives. Care should be taken to implement the <strong><em>Application_NewMailEx<\/em><\/strong> method within <strong><em>ThisOutlookSession<\/em><\/strong>.<\/p>\n<figure id=\"attachment_7265\" aria-describedby=\"caption-attachment-7265\" style=\"width: 891px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-7265\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2020\/08\/vba-application-newmail.jpg\" alt=\"Screenshort Visual Basic Editor Outlook\" width=\"891\" height=\"454\" srcset=\"https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2020\/08\/vba-application-newmail.jpg 891w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2020\/08\/vba-application-newmail-300x153.jpg 300w, https:\/\/ekiwi-blog.de\/wp-content\/uploads\/2020\/08\/vba-application-newmail-768x391.jpg 768w\" sizes=\"auto, (max-width: 891px) 100vw, 891px\" \/><figcaption id=\"caption-attachment-7265\" class=\"wp-caption-text\">Insert Application_NewMailEx method into ThisOutlookSession<\/figcaption><\/figure>\n<p>Both methods <strong><em>Application_NewMail<\/em><\/strong> and <strong><em>Application_NewMailEx<\/em><\/strong> are still executed <u>before the defined Outlook rules<\/u>.<\/p>\n<p>In the example, a check of the sender address takes place with the property <em>Item.SenderEmailAddress<\/em>. Many other checks, such as for the subject (<em>Item.Subject<\/em>), are conceivable. Within this <em>If<\/em> statement, one can then execute further code or execute macros from other modules.<\/p>\n<p><code><span style=\"color: #3366ff;\">Private Sub<\/span> Application_NewMailEx(<span style=\"color: #3366ff;\">ByVal<\/span> EntryIDCollection <span style=\"color: #3366ff;\">As<\/span> String)<br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #3366ff;\">Dim<\/span> Item <span style=\"color: #3366ff;\">As<\/span> Object<\/span>.<br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #3366ff;\">Dim<\/span> Email <span style=\"color: #3366ff;\">As<\/span> String<\/span><br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #3366ff;\">Set<\/span> Item = Session.GetItemFromID(EntryIDCollection)<\/span><br \/>\n<span style=\"margin-left: 2em;\">Item.Save<\/span><br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #339966;\">'Get sender email address<\/span><\/span>.<br \/>\n<span style=\"margin-left: 2em;\">Email = Item.SenderEmailAddress<\/span><br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #339966;\">'Check if email from specific sender<\/span><\/span>.<br \/>\n<span style=\"margin-left: 2em;\"><span style=\"colour: #3366ff;\">If<\/span> email = \"vorname.nachname@ekiwi.de\" <span style=\"colour: #3366ff;\">Then<\/span><\/span><br \/>\n<span style=\"margin-left: 4em;\"><span style=\"color: #339966;\">'run more code and macros here<\/span><\/span>.<br \/>\n<span style=\"margin-left: 4em;\">Module1.MyMacro<\/span><br \/>\n<span style=\"margin-left: 4em;\"><span style=\"colour: #3366ff;\">Debug.<a href=\"https:\/\/ekiwi-blog.de\/en\/49094\/print-outlook-e-mail-too-wide-contents-are-cut-off\/\" title=\"Print Outlook e-mail: too wide contents are cut off\">Print \"The correct mail<\/a> is: \" + Email.<br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #3366ff;\">Else<\/span><\/span><br \/>\n<span style=\"margin-left: 4em;\"><span style=\"color: #3366ff;\">Debug.Print<\/span> \"Wrong mail is: \" + Email<\/span>.<br \/>\n<span style=\"margin-left: 2em;\"><span style=\"color: #3366ff;\">End If<\/span><\/span>.<br \/>\n<span style=\"color: #3366ff;\">End Sub<\/span><\/code><\/p>\n<p>If you want to execute methods from other modules at this point, you have to make sure that they are declared as <strong><em>public<\/em><\/strong>.<\/p>\n<p><strong><u>Note:<\/u><\/strong> If you use <em>Debug.Print<\/em> for testing, you must use <em><strong>View =&gt; Direct Window (Ctrl+G)<\/strong><\/em> to show the output window in the VBA editor. For programmers of other programming languages certainly an unfamiliar wording.<br \/>\n\n<div class=\"aawp\">\n\n            \n            \n<div class=\"aawp-product aawp-product--horizontal aawp-product--bestseller aawp-product--ribbon\"  data-aawp-product-asin=\"3367105732\" data-aawp-product-id=\"112260\" data-aawp-tracking-id=\"ekiwide0b-21\" data-aawp-product-title=\"VBA mit Excel  Das umfassende Handbuch f\u00fcr Einsteiger und fortgeschrittene Anwender Aktuell zu Excel 2024 und Microsoft 365 \u2013 Ausgabe 2025\">\n\n    <span class=\"aawp-product__ribbon aawp-product__ribbon--bestseller\">Bestseller No. 1<\/span>\n    <div class=\"aawp-product__thumb\">\n        <a class=\"aawp-product__image-link\"\n           href=\"https:\/\/www.amazon.de\/dp\/3367105732?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1&keywords=vba\" title=\"VBA mit Excel: Das umfassende Handbuch f\u00fcr...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            <img decoding=\"async\" class=\"aawp-product__image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/51EVPKCMSSL._SL160_.jpg\" alt=\"VBA mit Excel: Das umfassende Handbuch f\u00fcr...\"  \/>\n        <\/a>\n\n            <\/div>\n\n    <div class=\"aawp-product__content\">\n        <a class=\"aawp-product__title\" href=\"https:\/\/www.amazon.de\/dp\/3367105732?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1&keywords=vba\" title=\"VBA mit Excel: Das umfassende Handbuch f\u00fcr...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            VBA mit Excel: Das umfassende Handbuch f\u00fcr...        <\/a>\n        <div class=\"aawp-product__description\">\n                    <\/div>\n    <\/div>\n\n    <div class=\"aawp-product__footer\">\n\n        <div class=\"aawp-product__pricing\">\n            \n                            <span class=\"aawp-product__price aawp-product__price--current\">49,90 EUR<\/span>\n            \n            <a href=\"https:\/\/www.amazon.de\/gp\/prime\/?tag=ekiwide0b-21\" title=\"Amazon Prime\" rel=\"nofollow noopener sponsored\" target=\"_blank\" class=\"aawp-check-prime\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/plugins\/aawp\/assets\/img\/icon-check-prime.svg\" height=\"16\" width=\"55\" alt=\"Amazon Prime\" \/><\/a>        <\/div>\n\n                <a class=\"aawp-button aawp-button--buy aawp-button--icon aawp-button--icon-black\" href=\"https:\/\/www.amazon.de\/dp\/3367105732?tag=ekiwide0b-21&#038;linkCode=ogi&#038;th=1&#038;psc=1&#038;keywords=vba\" title=\"Buy on Amazon\" target=\"_blank\" rel=\"nofollow noopener sponsored\">Buy on Amazon<\/a>\n            <\/div>\n\n<\/div>\n\n            \n            \n<div class=\"aawp-product aawp-product--horizontal aawp-product--bestseller aawp-product--ribbon\"  data-aawp-product-asin=\"3832803033\" data-aawp-product-id=\"111673\" data-aawp-tracking-id=\"ekiwide0b-21\" data-aawp-product-title=\"VBA mit Excel - Der leichte Einstieg  Vom ersten Makro zur eigenen Eingabemaske - F\u00fcr Excel 2010 bis 2021 365  Die anschauliche Anleitung f\u00fcr .. Eingabemaske - F\u00fcr Excel 2010 bis 2019\">\n\n    <span class=\"aawp-product__ribbon aawp-product__ribbon--bestseller\">Bestseller No. 2<\/span>\n    <div class=\"aawp-product__thumb\">\n        <a class=\"aawp-product__image-link\"\n           href=\"https:\/\/www.amazon.de\/dp\/3832803033?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1&keywords=vba\" title=\"VBA mit Excel - Der leichte Einstieg: Vom ersten...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            <img decoding=\"async\" class=\"aawp-product__image\" src=\"https:\/\/m.media-amazon.com\/images\/I\/51Ssb4JGplL._SL160_.jpg\" alt=\"VBA mit Excel - Der leichte Einstieg: Vom ersten...\"  \/>\n        <\/a>\n\n            <\/div>\n\n    <div class=\"aawp-product__content\">\n        <a class=\"aawp-product__title\" href=\"https:\/\/www.amazon.de\/dp\/3832803033?tag=ekiwide0b-21&linkCode=ogi&th=1&psc=1&keywords=vba\" title=\"VBA mit Excel - Der leichte Einstieg: Vom ersten...\" rel=\"nofollow noopener sponsored\" target=\"_blank\">\n            VBA mit Excel - Der leichte Einstieg: Vom ersten...        <\/a>\n        <div class=\"aawp-product__description\">\n                    <\/div>\n    <\/div>\n\n    <div class=\"aawp-product__footer\">\n\n        <div class=\"aawp-product__pricing\">\n            \n                            <span class=\"aawp-product__price aawp-product__price--current\">19,90 EUR<\/span>\n            \n            <a href=\"https:\/\/www.amazon.de\/gp\/prime\/?tag=ekiwide0b-21\" title=\"Amazon Prime\" rel=\"nofollow noopener sponsored\" target=\"_blank\" class=\"aawp-check-prime\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ekiwi-blog.de\/wp-content\/plugins\/aawp\/assets\/img\/icon-check-prime.svg\" height=\"16\" width=\"55\" alt=\"Amazon Prime\" \/><\/a>        <\/div>\n\n                <a class=\"aawp-button aawp-button--buy aawp-button--icon aawp-button--icon-black\" href=\"https:\/\/www.amazon.de\/dp\/3832803033?tag=ekiwide0b-21&#038;linkCode=ogi&#038;th=1&#038;psc=1&#038;keywords=vba\" title=\"Buy on Amazon\" target=\"_blank\" rel=\"nofollow noopener sponsored\">Buy on Amazon<\/a>\n            <\/div>\n\n<\/div>\n\n    \n<\/div>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>If you want to process an e-mail directly in Outlook with VBA, for example, move it after it has arrived<\/p>\n","protected":false},"author":2,"featured_media":6532,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1555],"tags":[3035,1707,2737,1857,1569,1861],"class_list":["post-54162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-en","tag-e-mail-en","tag-macro","tag-macros","tag-microsoft-en-2","tag-outlook-en","tag-vba-en-2"],"_links":{"self":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts\/54162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/comments?post=54162"}],"version-history":[{"count":0,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/posts\/54162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/media\/6532"}],"wp:attachment":[{"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/media?parent=54162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/categories?post=54162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ekiwi-blog.de\/en\/wp-json\/wp\/v2\/tags?post=54162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}