{"id":278253,"date":"2026-04-17T13:43:26","date_gmt":"2026-04-17T11:43:26","guid":{"rendered":"https:\/\/www.unipile.com\/?p=278253"},"modified":"2026-04-27T11:57:15","modified_gmt":"2026-04-27T09:57:15","slug":"guia-de-integracao-de-e-mail-da-api-do-microsoft-graph","status":"publish","type":"post","link":"https:\/\/www.unipile.com\/br\/microsoft-graph-api-email-integration-guide\/","title":{"rendered":"API do Microsoft Graph: Enviar, Ler e Sincronizar E-mails (Guia 2026)"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_padding=&#8221;30px||30px||true|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;1200px&#8221; custom_padding=&#8221;0px||0px||true|false&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@600;700;900&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-toc\" class=\"utc-wrapper\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<style><!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-wrapper,<!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-wrapper *,<!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-wrapper *::before,<!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-wrapper *::after {<!-- [et_pb_line_break_holder] -->      margin: 0 !important; padding: 0 !important; box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->      border: none !important; outline: none !important;<!-- [et_pb_line_break_holder] -->      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->      line-height: normal !important; letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->      text-transform: none !important; text-decoration: none !important;<!-- [et_pb_line_break_holder] -->      list-style: none !important; background: transparent !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-wrapper { padding: 0 20px !important; max-width: 1100px !important; margin: 0 auto !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-card { background: #ffffff !important; border-radius: 14px !important; border: 1px solid #e2e5ea !important; overflow: hidden !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle { display: none !important; align-items: center !important; justify-content: space-between !important; padding: 14px 18px !important; cursor: pointer !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle-left { display: flex !important; align-items: center !important; gap: 10px !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle-icon { width: 28px !important; height: 28px !important; min-width: 28px !important; background: rgba(59,185,139,0.1) !important; border-radius: 7px !important; display: flex !important; align-items: center !important; justify-content: center !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle-icon svg { width: 14px !important; height: 14px !important; stroke: #3BB98B !important; fill: none !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle-text { font-size: 0.78rem !important; font-weight: 600 !important; color: #0f2736 !important; line-height: 1 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-toggle-count { font-size: 0.6rem !important; font-weight: 600 !important; color: #94a3b8 !important; line-height: 1 !important; margin-top: 3px !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-chevron { width: 20px !important; height: 20px !important; stroke: #94a3b8 !important; fill: none !important; transition: transform 0.3s ease !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc.utc-open .utc-chevron { transform: rotate(180deg) !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-body { overflow: visible !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-grid { display: grid !important; grid-template-columns: repeat(4,1fr) !important; gap: 0 !important; padding: 6px 6px 10px !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-col { padding: 12px 12px !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-col + .utc-col { border-left: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-col-label { font-size: 0.7rem !important; font-weight: 700 !important; color: #94a3b8 !important; text-transform: uppercase !important; letter-spacing: 1px !important; margin-bottom: 8px !important; padding-bottom: 6px !important; border-bottom: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link { display: flex !important; align-items: center !important; gap: 7px !important; padding: 5px 6px !important; border-radius: 6px !important; cursor: pointer !important; transition: all 0.15s ease !important; color: #64748b !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link:hover { background: #f8fafb !important; color: #0f2736 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link.utc-active { background: rgba(59,185,139,0.08) !important; color: #0f2736 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-num { width: 18px !important; height: 18px !important; min-width: 18px !important; border-radius: 5px !important; background: #f1f5f9 !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 0.6rem !important; font-weight: 700 !important; color: #94a3b8 !important; transition: all 0.15s ease !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link.utc-active .utc-num { background: #3BB98B !important; color: #ffffff !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link.utc-read .utc-num { background: rgba(59,185,139,0.15) !important; color: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-label { font-size: 0.72rem !important; font-weight: 500 !important; line-height: 1.3 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-link.utc-active .utc-label { font-weight: 600 !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-tag { font-size: 0.5rem !important; font-weight: 700 !important; padding: 2px 5px !important; border-radius: 4px !important; margin-left: auto !important; flex-shrink: 0 !important; text-transform: uppercase !important; letter-spacing: 0.3px !important; }<!-- [et_pb_line_break_holder] -->    #unipile-toc .utc-tag-rec { background: rgba(59,185,139,0.12) !important; color: #3BB98B !important; }<!-- [et_pb_line_break_holder] -->    @media (max-width: 1000px) {<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-grid { grid-template-columns: repeat(2,1fr) !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-col:nth-child(n+3) { border-left: none !important; border-top: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-col:nth-child(4) { border-left: 1px solid #f0f1f3 !important; border-top: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    @media (max-width: 700px) {<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-toggle { display: flex !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-body { max-height: 0 !important; overflow: hidden !important; transition: max-height 0.4s ease !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc.utc-open .utc-body { max-height: 1400px !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-grid { grid-template-columns: repeat(2,1fr) !important; padding: 4px 6px 12px !important; border-top: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-col:nth-child(odd) { border-left: none !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-col:nth-child(n+3) { border-top: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    @media (max-width: 480px) {<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-grid { grid-template-columns: 1fr !important; }<!-- [et_pb_line_break_holder] -->      #unipile-toc .utc-col + .utc-col { border-left: none !important; border-top: 1px solid #f0f1f3 !important; }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  <\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"utc-card\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-toggle\" onclick=\"document.getElementById('unipile-toc').classList.toggle('utc-open')\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-toggle-left\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-toggle-icon\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><line x1=\"3\" y1=\"12\" x2=\"15\" y2=\"12\"\/><line x1=\"3\" y1=\"18\" x2=\"18\" y2=\"18\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-toggle-text\">Table of Contents<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-toggle-count\">10 sections<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <svg class=\"utc-chevron\" viewBox=\"0 0 24 24\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"utc-body\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"utc-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-col-label\">Fundamentals<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-what\" class=\"utc-link utc-active\" data-idx=\"0\"><span class=\"utc-num\">1<\/span><span class=\"utc-label\">What Is Graph API Email?<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-why\" class=\"utc-link\" data-idx=\"1\"><span class=\"utc-num\">2<\/span><span class=\"utc-label\">Why Use Graph API<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-usecases\" class=\"utc-link\" data-idx=\"2\"><span class=\"utc-num\">3<\/span><span class=\"utc-label\">Email Use Cases<\/span><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-col-label\">Setup<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <a href=\"#upl-setup-microsoft\" class=\"utc-link\" data-idx=\"3\"><span class=\"utc-num\">4<\/span><span class=\"utc-label\">Microsoft OAuth Setup<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-features\" class=\"utc-link\" data-idx=\"4\"><span class=\"utc-num\">5<\/span><span class=\"utc-label\">Key Features<\/span><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-col-label\">Integration<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <a href=\"#upl-mg-code\" class=\"utc-link\" data-idx=\"5\"><span class=\"utc-num\">6<\/span><span class=\"utc-label\">Send, Read &#038; Sync Code<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-webhooks\" class=\"utc-link\" data-idx=\"6\"><span class=\"utc-num\">7<\/span><span class=\"utc-label\">Webhooks &#038; Events<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-limits\" class=\"utc-link\" data-idx=\"7\"><span class=\"utc-num\">8<\/span><span class=\"utc-label\">Rate Limits &#038; Errors<\/span><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"utc-col\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"utc-col-label\">Build with Unipile<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-unified\" class=\"utc-link\" data-idx=\"8\"><span class=\"utc-num\">9<\/span><span class=\"utc-label\">Unified Email API<\/span><span class=\"utc-tag utc-tag-rec\">Best<\/span><\/a><!-- [et_pb_line_break_holder] -->          <a href=\"#mg-faq\" class=\"utc-link\" data-idx=\"9\"><span class=\"utc-num\">10<\/span><span class=\"utc-label\">FAQ<\/span><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <script><!-- [et_pb_line_break_holder] -->    (function() {<!-- [et_pb_line_break_holder] -->      var wrapper = document.getElementById('unipile-toc');<!-- [et_pb_line_break_holder] -->      if (!wrapper) return;<!-- [et_pb_line_break_holder] -->      var links = wrapper.querySelectorAll('.utc-link');<!-- [et_pb_line_break_holder] -->      links.forEach(function(link) {<!-- [et_pb_line_break_holder] -->        link.addEventListener('click', function(e) {<!-- [et_pb_line_break_holder] -->          var href = link.getAttribute('href');<!-- [et_pb_line_break_holder] -->          var target = href ? document.querySelector(href) : null;<!-- [et_pb_line_break_holder] -->          var idx = parseInt(link.getAttribute('data-idx'));<!-- [et_pb_line_break_holder] -->          if (target) { e.preventDefault(); window.scrollTo({ top: target.getBoundingClientRect().top + window.pageYOffset - 80, behavior: 'smooth' }); }<!-- [et_pb_line_break_holder] -->          links.forEach(function(l) { l.classList.remove('utc-active'); });<!-- [et_pb_line_break_holder] -->          link.classList.add('utc-active');<!-- [et_pb_line_break_holder] -->          links.forEach(function(l) { var li = parseInt(l.getAttribute('data-idx')); if (li < idx) l.classList.add('utc-read'); else l.classList.remove('utc-read'); });<!-- [et_pb_line_break_holder] -->          if (window.innerWidth <= 700) wrapper.classList.remove('utc-open');<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->      if ('IntersectionObserver' in window) {<!-- [et_pb_line_break_holder] -->        var ids = []; links.forEach(function(l) { var h = l.getAttribute('href'); if (h) ids.push(h.replace('#','')); });<!-- [et_pb_line_break_holder] -->        var obs = new IntersectionObserver(function(entries) {<!-- [et_pb_line_break_holder] -->          entries.forEach(function(entry) {<!-- [et_pb_line_break_holder] -->            if (entry.isIntersecting) {<!-- [et_pb_line_break_holder] -->              var idx = ids.indexOf(entry.target.id);<!-- [et_pb_line_break_holder] -->              if (idx !== -1) {<!-- [et_pb_line_break_holder] -->                links.forEach(function(l,j) { l.classList.remove('utc-active'); if (j < idx) l.classList.add('utc-read'); else l.classList.remove('utc-read'); });<!-- [et_pb_line_break_holder] -->                links[idx].classList.add('utc-active');<!-- [et_pb_line_break_holder] -->              }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->          });<!-- [et_pb_line_break_holder] -->        }, { threshold: 0.2, rootMargin: '-80px 0px -50% 0px' });<!-- [et_pb_line_break_holder] -->        ids.forEach(function(id) { var el = document.getElementById(id); if (el) obs.observe(el); });<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    })();<!-- [et_pb_line_break_holder] -->  <\/script><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-hero,#upl-mg-hero *,#upl-mg-hero *::before,#upl-mg-hero *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero{background:transparent!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-wrap {max-width:1160px!important;margin:0 auto!important;padding:70px 24px 80px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-grid {display:grid!important;grid-template-columns:1fr 1fr!important;gap:56px!important;align-items:center!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-h1 {font-family:'Poppins',sans-serif!important;font-size:44px!important;font-weight:700!important;color:#0f2736!important;line-height:1.18!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-accent {color:#3BB98B!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-meta {display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-meta-item {display:flex!important;align-items:center!important;gap:6px!important;font-size:0.8rem!important;color:#718096!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-meta-item svg {width:14px!important;height:14px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-meta-sep {width:4px!important;height:4px!important;background:#cbd5e0!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-desc {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:28px!important;max-width:560px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-actions {display:flex!important;align-items:center!important;gap:14px!important;flex-wrap:wrap!important;margin-bottom:28px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-primary {display:inline-flex!important;align-items:center!important;gap:8px!important;background:#DDDF4C!important;color:#0f2736!important;padding:14px 28px!important;border-radius:8px!important;font-size:0.95rem!important;font-weight:600!important;border:2px solid #DDDF4C!important;transition:transform 0.3s ease!important;cursor:pointer!important;white-space:nowrap!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-primary:hover {transform:translateY(-5px)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-primary svg {width:16px!important;height:16px!important;stroke:#0f2736!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-secondary {display:inline-flex!important;align-items:center!important;gap:8px!important;background:transparent!important;color:#0f2736!important;padding:12px 24px!important;border-radius:8px!important;border:2px solid #0f2736!important;font-size:0.95rem!important;font-weight:600!important;transition:all 0.3s ease!important;cursor:pointer!important;white-space:nowrap!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-secondary:hover {background:#0f2736!important;color:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-cta-secondary svg {width:14px!important;height:14px!important;stroke:currentColor!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-tags {display:flex!important;flex-wrap:wrap!important;gap:8px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-tag {background:#fff!important;color:#4a5568!important;padding:5px 12px!important;border-radius:6px!important;font-size:0.75rem!important;font-weight:500!important;border:1px solid #e2e8f0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-code {border-radius:14px!important;overflow:hidden!important;background:#0d1117!important;box-shadow:0 20px 60px rgba(15,39,54,0.18)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-editor-bar {background:#161b22!important;padding:12px 18px!important;display:flex!important;align-items:center!important;gap:8px!important;border-bottom:1px solid rgba(255,255,255,0.06)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-dot {width:12px!important;height:12px!important;border-radius:50%!important;display:inline-block!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-dot-r {background:#ff5f57!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-dot-y {background:#febc2e!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-dot-g {background:#28c840!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-filename {color:#8b949e!important;font-size:13px!important;margin-left:6px!important;font-family:'Courier New',monospace!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-pre {padding:22px 24px!important;font-size:13.5px!important;line-height:1.8!important;overflow-x:auto!important;background:#0d1117!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-pre code {font-family:'Courier New',monospace!important;white-space:pre!important;display:block!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .c {color:#8b949e!important;}.k{color:#ff7b72!important;}.fn{color:#d2a8ff!important;}.s{color:#a5d6ff!important;}.w{color:#e6edf3!important;}.n{color:#79c0ff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-ok {background:rgba(59,185,139,0.1)!important;border-top:1px solid rgba(59,185,139,0.25)!important;color:#3BB98B!important;padding:11px 24px!important;font-size:12.5px!important;font-family:'Courier New',monospace!important;display:flex!important;align-items:center!important;gap:8px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-providers {display:flex!important;align-items:center!important;gap:12px!important;padding:14px 20px!important;background:#fff!important;border-top:1px solid #e8ecf0!important;flex-wrap:wrap!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-providers img {width:20px!important;height:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-hero .mgh-prov-label {font-size:11px!important;color:#94a3b8!important;font-weight:500!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgh-grid{grid-template-columns:1fr!important;gap:44px!important;}.mgh-h1{font-size:34px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgh-wrap{padding:50px 16px 60px!important;}.mgh-h1{font-size:28px!important;}.mgh-actions{flex-direction:column!important;}.mgh-cta-primary,.mgh-cta-secondary{width:100%!important;justify-content:center!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:400px){.mgh-h1{font-size:26px!important;}.mgh-tag{font-size:0.7rem!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-hero\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgh-wrap\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgh-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgh-left\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgh-badge\"><span class=\"mgh-badge-dot\"><\/span><span>Microsoft Graph API<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h1 class=\"mgh-h1\">Microsoft Graph API Email: <span class=\"mgh-accent\">Complete Integration Guide<\/span> for Developers (2026)<\/h1>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgh-meta\"><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-meta-item\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><span>18 min read<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-meta-sep\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-meta-item\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg><span>17 Apr 2026<\/span><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-meta-sep\"><\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-meta-item\"><svg viewBox=\"0 0 24 24\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><span>Python \/ Node.js \/ REST<\/span><\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgh-desc\">The Microsoft Graph API is the unified REST endpoint for accessing Outlook and Exchange email data: read, send, search, and receive webhooks for every mailbox event. This guide walks you through OAuth 2.0 setup, live code examples, rate limits, and how to unify Microsoft Graph with Gmail and IMAP under a single SDK.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgh-actions\"><!-- [et_pb_line_break_holder] -->          <a class=\"mgh-cta-primary\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\"><span>Start for Free<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->          <a class=\"mgh-cta-secondary\" href=\"https:\/\/developers.unipile.com\" target=\"_blank\"><svg viewBox=\"0 0 24 24\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><span>View Docs<\/span><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgh-tags\"><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-tag\">Microsoft Graph API<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-tag\">OAuth 2.0<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-tag\">Outlook Email<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-tag\">MSAL<\/span><!-- [et_pb_line_break_holder] -->          <span class=\"mgh-tag\">Webhooks<\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgh-right\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgh-code\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgh-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"mgh-dot mgh-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgh-dot mgh-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgh-dot mgh-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgh-filename\">read_outlook_emails.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgh-pre\"><code><span class=\"k\">import<\/span><span class=\"w\"> requests<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Unipile Unified Email API<\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Reads Outlook emails via Microsoft Graph<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"w\">BASE<\/span><span class=\"w\"> = <\/span><span class=\"s\">\"https:\/\/api.unipile.com:13465\/api\/v1\"<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">HEADERS<\/span><span class=\"w\"> = {<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">  <\/span><span class=\"s\">\"X-API-KEY\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"YOUR_ACCESS_TOKEN\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">  <\/span><span class=\"s\">\"Accept\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"application\/json\"<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">}<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"fn\">get_outlook_emails<\/span><span class=\"w\">(account_id, limit=<\/span><span class=\"n\">20<\/span><span class=\"w\">):<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    r <\/span><span class=\"k\">=<\/span><span class=\"w\"> requests.<\/span><span class=\"fn\">get<\/span><span class=\"w\">(<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">f\"{BASE}\/emails\"<\/span><span class=\"w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        headers=HEADERS,<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        params={<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">          <\/span><span class=\"s\">\"account_id\"<\/span><span class=\"w\">: account_id,<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">          <\/span><span class=\"s\">\"limit\"<\/span><span class=\"w\">: limit<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        }<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    )<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    return<\/span><span class=\"w\"> r.<\/span><span class=\"fn\">json<\/span><span class=\"w\">()[<\/span><span class=\"s\">\"emails\"<\/span><span class=\"w\">]<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"w\">emails <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"fn\">get_outlook_emails<\/span><span class=\"w\">(<\/span><span class=\"s\">\"acc_outlook_123\"<\/span><span class=\"w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">for<\/span><span class=\"w\"> e <\/span><span class=\"k\">in<\/span><span class=\"w\"> emails:<\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"fn\">print<\/span><span class=\"w\">(e[<\/span><span class=\"s\">\"subject\"<\/span><span class=\"w\">], e[<\/span><span class=\"s\">\"from\"<\/span><span class=\"w\">])<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgh-ok\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>20 emails fetched from Outlook &#8211; via Microsoft Graph<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgh-providers\"><!-- [et_pb_line_break_holder] -->            <span class=\"mgh-prov-label\">Works with:<\/span><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook logo\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail logo\"><!-- [et_pb_line_break_holder] -->            <img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP logo\"><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;5px|0px|5px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<\/p>\n<style><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner *, #unipile-emailguide-banner *::before, #unipile-emailguide-banner *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: normal !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner {<!-- [et_pb_line_break_holder] -->  padding: 0 0 16px 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-container {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 0 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-callout {<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.08) !important;<!-- [et_pb_line_break_holder] -->  border-left: 3px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->  gap: 14px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-icon {<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  margin-top: 2px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-content {<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-title {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-text {<!-- [et_pb_line_break_holder] -->  font-size: 0.9rem !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-link {<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->  text-underline-offset: 2px !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  transition: color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#unipile-emailguide-banner .egb-link:hover {<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"unipile-emailguide-banner\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"egb-container\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"egb-callout\"><!-- [et_pb_line_break_holder] -->      <svg class=\"egb-icon\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3BB98B\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\/><\/svg><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"egb-content\"><!-- [et_pb_line_break_holder] -->        <span class=\"egb-title\">Building an email integration?<\/span><!-- [et_pb_line_break_holder] -->        <pee class=\"egb-text\">Read our <span class=\"egb-link\" data-upl-link=\"https:\/\/www.unipile.com\/email-api-guide\/\" data-upl-target=\"_self\">Complete Email API Guide<\/span> &#8211; OAuth flows, sync, send, and provider comparison.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function() {<!-- [et_pb_line_break_holder] -->  var banner = document.getElementById('unipile-emailguide-banner');<!-- [et_pb_line_break_holder] -->  if (!banner) return;<!-- [et_pb_line_break_holder] -->  banner.addEventListener('click', function(e) {<!-- [et_pb_line_break_holder] -->    var el = e.target.closest('[data-upl-link]');<!-- [et_pb_line_break_holder] -->    if (!el) return;<!-- [et_pb_line_break_holder] -->    e.preventDefault();<!-- [et_pb_line_break_holder] -->    e.stopPropagation();<!-- [et_pb_line_break_holder] -->    var url = el.getAttribute('data-upl-link');<!-- [et_pb_line_break_holder] -->    var target = el.getAttribute('data-upl-target') || '_blank';<!-- [et_pb_line_break_holder] -->    if (url) window.open(url, target);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-what,#upl-mg-what *,#upl-mg-what *::before,#upl-mg-what *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what{background:transparent!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-desc {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-defbox {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:28px 32px!important;margin-bottom:40px!important;box-shadow:0 8px 32px rgba(15,39,54,0.07)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-defbox-label {font-size:11px!important;font-weight:700!important;color:#3BB98B!important;text-transform:uppercase!important;letter-spacing:1px!important;margin-bottom:12px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-defbox-text {font-size:16px!important;line-height:1.78!important;color:#383838!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-defbox-text strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-note {background:rgba(59,185,139,0.08)!important;border-left:4px solid #3BB98B!important;border-radius:0 12px 12px 0!important;padding:18px 22px!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-note p {font-size:15px!important;line-height:1.7!important;color:#1e293b!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-note strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table-wrap {overflow-x:auto!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table {width:100%!important;border-collapse:separate!important;border-spacing:0!important;border-radius:14px!important;overflow:hidden!important;border:1px solid #e5e7eb!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table th, #upl-mg-what .mgw-table td {padding:14px 18px!important;text-align:left!important;font-size:14.5px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table thead tr {background:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table thead th {color:#fff!important;font-weight:600!important;font-size:13px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table tbody tr:nth-child(even) {background:#f8fafc!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table tbody tr:nth-child(odd) {background:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table tbody td {color:#383838!important;border-top:1px solid #f0f2f5!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-table tbody td:first-child {font-weight:600!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-badge-green {display:inline-flex!important;align-items:center!important;gap:5px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:3px 10px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-what .mgw-badge-yellow {display:inline-flex!important;align-items:center!important;gap:5px!important;background:rgba(221,223,76,0.18)!important;color:#8a8c2e!important;padding:3px 10px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgw-h2{font-size:28px!important;}.mgw-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgw-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-what\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgw-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgw-anchor\" id=\"mg-what\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgw-badge\"><span class=\"mgw-badge-dot\"><\/span><span>Definition<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgw-h2\">What Is the Microsoft Graph API for Email?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgw-desc\">The Microsoft Graph API is the unified REST gateway for all Microsoft 365 services, including email, calendar, contacts, and files. For email specifically, it exposes the <strong>\/v1.0\/me\/messages<\/strong> endpoint, giving developers programmatic access to every Outlook and Exchange mailbox. It replaced legacy protocols (Basic Auth, EWS) and is now the only officially supported way to access Outlook email programmatically using OAuth 2.0.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgw-defbox\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgw-defbox-label\">Developer definition<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"mgw-defbox-text\">The <strong>Microsoft Graph API for email<\/strong> is the RESTful interface exposing Microsoft 365 mailbox data &#8211; including messages, folders, attachments, and mailbox settings &#8211; under the <strong>https:\/\/graph.microsoft.com\/v1.0\/me\/messages<\/strong> endpoint. It authenticates through Azure Active Directory OAuth 2.0, supports delegated and application permissions, and enables real-time events via <strong>change notification subscriptions<\/strong> (webhooks). It is the recommended replacement for all deprecated Basic Authentication flows.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgw-note\"><!-- [et_pb_line_break_holder] -->      <pee>Microsoft Graph API is the <strong>recommended replacement<\/strong> for deprecated Basic Authentication &#8211; all Outlook and Exchange email access now requires OAuth 2.0 via Graph. Basic Auth was fully retired in October 2022.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgw-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table class=\"mgw-table\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Criterion<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Microsoft Graph API<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Direct SMTP \/ IMAP<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Authentication<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgw-badge-green\">OAuth 2.0 (MSAL)<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Username + password (deprecated)<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Rate limits<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>10,000 requests \/ 10 min per app<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>No standard limit (server-dependent)<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Features<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgw-badge-green\">Full: read, send, search, webhooks, folders<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Limited: basic send\/receive only<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Complexity<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>OAuth flow + Azure App Registration<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgw-badge-yellow\">Low setup, high maintenance<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Unipile support<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgw-badge-green\">Native &#8211; no OAuth flow needed<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgw-badge-green\">Native &#8211; IMAP fallback<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-why,#upl-mg-why *,#upl-mg-why *::before,#upl-mg-why *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why{background:#f4f5f7!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-intro {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-grid {display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-card {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:28px!important;box-shadow:0 8px 24px rgba(15,39,54,0.06)!important;transition:transform 0.25s ease,box-shadow 0.25s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-card:hover {transform:translateY(-4px)!important;box-shadow:0 16px 40px rgba(15,39,54,0.10)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-icon {width:44px!important;height:44px!important;border-radius:12px!important;background:rgba(59,185,139,0.12)!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-icon svg {width:22px!important;height:22px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-card-title {font-family:'Poppins',sans-serif!important;font-size:18px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:10px!important;line-height:1.3!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-why .mgwhy-card-text {font-size:15px!important;line-height:1.75!important;color:#4a5568!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgwhy-grid{grid-template-columns:1fr!important;}.mgwhy-h2{font-size:28px!important;}.mgwhy-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgwhy-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-why\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgwhy-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgwhy-anchor\" id=\"mg-why\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgwhy-badge\"><span class=\"mgwhy-badge-dot\"><\/span><span>Advantages<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgwhy-h2\">Why Use Microsoft Graph API for Email Integration?<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgwhy-intro\">Building on Microsoft Graph gives your application secure, token-based access to the world&#8217;s largest enterprise email ecosystem &#8211; over 400 million Outlook and Exchange mailboxes. Here are the four core reasons developers choose the microsoft graph api email endpoint.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgwhy-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwhy-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-card-title\">Unified OAuth 2.0 Authentication<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgwhy-card-text\">One Azure App Registration covers all Outlook, Exchange, and Microsoft 365 mailboxes. Delegated permissions let users consent once; application permissions enable unattended server-side access without any user interaction.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwhy-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-icon\"><svg viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-card-title\">Full Mailbox Access<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgwhy-card-text\">Read, send, reply, move, and delete messages. Manage folders, search the entire mailbox, handle attachments, and set mail rules &#8211; all via the same REST interface with a predictable JSON response schema.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwhy-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"\/><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\/><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"\/><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"\/><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-card-title\">Real-Time Webhooks<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgwhy-card-text\">Subscribe to mailbox change notifications and receive an HTTP POST to your endpoint whenever a new email arrives, a message is read, or a folder changes. No polling, no delays &#8211; events delivered in near real time.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwhy-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"\/><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwhy-card-title\">Exchange, Outlook, and M365 Support<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgwhy-card-text\">A single API endpoint covers personal Outlook accounts, business Microsoft 365 tenants, and on-premises Exchange servers (via hybrid). One integration handles the entire Microsoft email ecosystem without separate code paths.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] --><meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] --><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] --><title>Setting Up Microsoft OAuth for Outlook API &#8211; Unipile<\/title><!-- [et_pb_line_break_holder] --><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\"><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 RESET ISOLATION DIVI \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft,<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft *,<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft *::before,<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft *::after {<!-- [et_pb_line_break_holder] -->    margin: 0 !important;<!-- [et_pb_line_break_holder] -->    padding: 0 !important;<!-- [et_pb_line_break_holder] -->    box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->    border: none !important;<!-- [et_pb_line_break_holder] -->    outline: none !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->    letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->    text-transform: none !important;<!-- [et_pb_line_break_holder] -->    text-decoration: none !important;<!-- [et_pb_line_break_holder] -->    list-style: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 SECTION \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft {<!-- [et_pb_line_break_holder] -->    padding: 60px 24px !important;<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-container {<!-- [et_pb_line_break_holder] -->    max-width: 820px !important;<!-- [et_pb_line_break_holder] -->    margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 HEADER \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-header {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 16px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->    padding-bottom: 28px !important;<!-- [et_pb_line_break_holder] -->    border-bottom: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-header-top {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    justify-content: space-between !important;<!-- [et_pb_line_break_holder] -->    align-items: flex-start !important;<!-- [et_pb_line_break_holder] -->    gap: 20px !important;<!-- [et_pb_line_break_holder] -->    flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-header h2 {<!-- [et_pb_line_break_holder] -->    font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->    font-size: 35px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->    flex: 1 !important;<!-- [et_pb_line_break_holder] -->    min-width: 280px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-doc-link {<!-- [et_pb_line_break_holder] -->    display: inline-flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 8px !important;<!-- [et_pb_line_break_holder] -->    background: #ffffff !important;<!-- [et_pb_line_break_holder] -->    border: 1.5px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-size: 13px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->    padding: 10px 16px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->    white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-doc-link:hover {<!-- [et_pb_line_break_holder] -->    border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->    transform: translateY(-2px) !important;<!-- [et_pb_line_break_holder] -->    box-shadow: 0 4px 12px rgba(59, 185, 139, 0.15) !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-doc-link svg {<!-- [et_pb_line_break_holder] -->    width: 14px !important;<!-- [et_pb_line_break_holder] -->    height: 14px !important;<!-- [et_pb_line_break_holder] -->    stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->    fill: none !important;<!-- [et_pb_line_break_holder] -->    stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->    stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->    stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-intro {<!-- [et_pb_line_break_holder] -->    font-size: 16px !important;<!-- [et_pb_line_break_holder] -->    color: #383838 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-intro strong {<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 PROGRESS BAR \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-progress {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    gap: 6px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 32px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->    background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->    flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-progress-item {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 6px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-progress-dot {<!-- [et_pb_line_break_holder] -->    width: 26px !important;<!-- [et_pb_line_break_holder] -->    height: 26px !important;<!-- [et_pb_line_break_holder] -->    min-width: 26px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->    background: #ffffff !important;<!-- [et_pb_line_break_holder] -->    border: 2px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    font-size: 11px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->    color: #6b7280 !important;<!-- [et_pb_line_break_holder] -->    cursor: pointer !important;<!-- [et_pb_line_break_holder] -->    transition: all 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-progress-dot:hover {<!-- [et_pb_line_break_holder] -->    border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->    color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-progress-line {<!-- [et_pb_line_break_holder] -->    width: 18px !important;<!-- [et_pb_line_break_holder] -->    height: 2px !important;<!-- [et_pb_line_break_holder] -->    background: #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 STEP CARD \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 16px !important;<!-- [et_pb_line_break_holder] -->    padding: 28px !important;<!-- [et_pb_line_break_holder] -->    background: #ffffff !important;<!-- [et_pb_line_break_holder] -->    border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->    scroll-margin-top: 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-head {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-num {<!-- [et_pb_line_break_holder] -->    width: 38px !important;<!-- [et_pb_line_break_holder] -->    height: 38px !important;<!-- [et_pb_line_break_holder] -->    min-width: 38px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->    background: rgba(66, 133, 244, 0.12) !important;<!-- [et_pb_line_break_holder] -->    color: #3367d6 !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-title {<!-- [et_pb_line_break_holder] -->    font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->    font-size: 18px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->    flex: 1 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    color: #383838 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 10px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body strong {<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body a {<!-- [et_pb_line_break_holder] -->    color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->    text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->    text-underline-offset: 3px !important;<!-- [et_pb_line_break_holder] -->    transition: color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body a:hover {<!-- [et_pb_line_break_holder] -->    color: #2da077 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body ul {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 6px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body ul li {<!-- [et_pb_line_break_holder] -->    padding-left: 20px !important;<!-- [et_pb_line_break_holder] -->    position: relative !important;<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    color: #383838 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-step-body ul li::before {<!-- [et_pb_line_break_holder] -->    content: \"\" !important;<!-- [et_pb_line_break_holder] -->    position: absolute !important;<!-- [et_pb_line_break_holder] -->    left: 4px !important;<!-- [et_pb_line_break_holder] -->    top: 10px !important;<!-- [et_pb_line_break_holder] -->    width: 6px !important;<!-- [et_pb_line_break_holder] -->    height: 6px !important;<!-- [et_pb_line_break_holder] -->    background: #3367d6 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 CODE \/ URI BLOCK \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-redirect {<!-- [et_pb_line_break_holder] -->    background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->    border-left: 3px solid #3367d6 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->    padding: 12px 14px !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Courier New', 'Monaco', monospace !important;<!-- [et_pb_line_break_holder] -->    font-size: 12px !important;<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    word-break: break-all !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.6 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-code-list {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 6px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->    background: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->    margin-top: 4px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-code-line {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 8px !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Courier New', 'Monaco', monospace !important;<!-- [et_pb_line_break_holder] -->    font-size: 13px !important;<!-- [et_pb_line_break_holder] -->    color: #a5d6ff !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-code-line::before {<!-- [et_pb_line_break_holder] -->    content: \"$\" !important;<!-- [et_pb_line_break_holder] -->    color: #3367d6 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-code-note {<!-- [et_pb_line_break_holder] -->    font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->    color: #8b949e !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->    padding-left: 16px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->    font-style: italic !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 SCREENSHOT \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-shot {<!-- [et_pb_line_break_holder] -->    margin-top: 6px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 12px !important;<!-- [et_pb_line_break_holder] -->    overflow: hidden !important;<!-- [et_pb_line_break_holder] -->    border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    background: #f4f5f7 !important;<!-- [et_pb_line_break_holder] -->    display: block !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-shot img {<!-- [et_pb_line_break_holder] -->    width: 100% !important;<!-- [et_pb_line_break_holder] -->    height: auto !important;<!-- [et_pb_line_break_holder] -->    display: block !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 INFO BOX \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-info {<!-- [et_pb_line_break_holder] -->    background: rgba(66, 133, 244, 0.06) !important;<!-- [et_pb_line_break_holder] -->    border-left: 3px solid #3367d6 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    color: #1e293b !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-info strong {<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 WARNING BOX \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-warning {<!-- [et_pb_line_break_holder] -->    background: rgba(251, 188, 4, 0.1) !important;<!-- [et_pb_line_break_holder] -->    border-left: 3px solid #FBBC04 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    color: #1e293b !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-warning strong {<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 ADVANCED ACCORDION \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-advanced {<!-- [et_pb_line_break_holder] -->    margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->    padding-top: 32px !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-advanced-label {<!-- [et_pb_line_break_holder] -->    display: inline-flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 8px !important;<!-- [et_pb_line_break_holder] -->    background: rgba(221, 223, 76, 0.18) !important;<!-- [et_pb_line_break_holder] -->    color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->    padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->    font-size: 11px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->    text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->    letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->    width: fit-content !important;<!-- [et_pb_line_break_holder] -->    margin-bottom: 6px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-advanced-label svg {<!-- [et_pb_line_break_holder] -->    width: 12px !important;<!-- [et_pb_line_break_holder] -->    height: 12px !important;<!-- [et_pb_line_break_holder] -->    stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->    fill: none !important;<!-- [et_pb_line_break_holder] -->    stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->    stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->    stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft details.sm-acc {<!-- [et_pb_line_break_holder] -->    background: #ffffff !important;<!-- [et_pb_line_break_holder] -->    border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->    border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->    overflow: hidden !important;<!-- [et_pb_line_break_holder] -->    transition: border-color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft details.sm-acc[open] {<!-- [et_pb_line_break_holder] -->    border-color: #3367d6 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft details.sm-acc summary {<!-- [et_pb_line_break_holder] -->    list-style: none !important;<!-- [et_pb_line_break_holder] -->    cursor: pointer !important;<!-- [et_pb_line_break_holder] -->    padding: 20px 24px !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->    user-select: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft details.sm-acc summary::-webkit-details-marker {<!-- [et_pb_line_break_holder] -->    display: none !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-num {<!-- [et_pb_line_break_holder] -->    width: 38px !important;<!-- [et_pb_line_break_holder] -->    height: 38px !important;<!-- [et_pb_line_break_holder] -->    min-width: 38px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 10px !important;<!-- [et_pb_line_break_holder] -->    background: rgba(221, 223, 76, 0.18) !important;<!-- [et_pb_line_break_holder] -->    color: #8a8c2e !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-head {<!-- [et_pb_line_break_holder] -->    flex: 1 !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 2px !important;<!-- [et_pb_line_break_holder] -->    min-width: 0 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-title {<!-- [et_pb_line_break_holder] -->    font-family: 'Inter', sans-serif !important;<!-- [et_pb_line_break_holder] -->    font-size: 17px !important;<!-- [et_pb_line_break_holder] -->    font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.3 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-sub {<!-- [et_pb_line_break_holder] -->    font-size: 13px !important;<!-- [et_pb_line_break_holder] -->    color: #6b7280 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 500 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-chevron {<!-- [et_pb_line_break_holder] -->    width: 22px !important;<!-- [et_pb_line_break_holder] -->    height: 22px !important;<!-- [et_pb_line_break_holder] -->    min-width: 22px !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->    color: #6b7280 !important;<!-- [et_pb_line_break_holder] -->    transition: transform 0.25s ease, color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-chevron svg {<!-- [et_pb_line_break_holder] -->    width: 18px !important;<!-- [et_pb_line_break_holder] -->    height: 18px !important;<!-- [et_pb_line_break_holder] -->    stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->    fill: none !important;<!-- [et_pb_line_break_holder] -->    stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->    stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->    stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft details.sm-acc[open] .sm-acc-chevron {<!-- [et_pb_line_break_holder] -->    transform: rotate(180deg) !important;<!-- [et_pb_line_break_holder] -->    color: #3367d6 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body {<!-- [et_pb_line_break_holder] -->    padding: 4px 24px 24px 24px !important;<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    color: #383838 !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 14px !important;<!-- [et_pb_line_break_holder] -->    border-top: 1px solid #f0f2f5 !important;<!-- [et_pb_line_break_holder] -->    padding-top: 20px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body strong {<!-- [et_pb_line_break_holder] -->    color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body a {<!-- [et_pb_line_break_holder] -->    color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->    text-decoration: underline !important;<!-- [et_pb_line_break_holder] -->    text-underline-offset: 3px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body ul {<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    flex-direction: column !important;<!-- [et_pb_line_break_holder] -->    gap: 6px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body ul li {<!-- [et_pb_line_break_holder] -->    padding-left: 20px !important;<!-- [et_pb_line_break_holder] -->    position: relative !important;<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    line-height: 1.65 !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-acc-body ul li::before {<!-- [et_pb_line_break_holder] -->    content: \"\" !important;<!-- [et_pb_line_break_holder] -->    position: absolute !important;<!-- [et_pb_line_break_holder] -->    left: 4px !important;<!-- [et_pb_line_break_holder] -->    top: 10px !important;<!-- [et_pb_line_break_holder] -->    width: 6px !important;<!-- [et_pb_line_break_holder] -->    height: 6px !important;<!-- [et_pb_line_break_holder] -->    background: #3367d6 !important;<!-- [et_pb_line_break_holder] -->    border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 CTA \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-cta {<!-- [et_pb_line_break_holder] -->    margin-top: 40px !important;<!-- [et_pb_line_break_holder] -->    display: flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    justify-content: center !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-cta-btn {<!-- [et_pb_line_break_holder] -->    display: inline-flex !important;<!-- [et_pb_line_break_holder] -->    align-items: center !important;<!-- [et_pb_line_break_holder] -->    gap: 8px !important;<!-- [et_pb_line_break_holder] -->    color: #0F2836 !important;<!-- [et_pb_line_break_holder] -->    background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->    font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->    border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->    transition: all 0.3s ease !important;<!-- [et_pb_line_break_holder] -->    white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-cta-btn:hover {<!-- [et_pb_line_break_holder] -->    transform: translateX(4px) !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #upl-setup-microsoft .sm-cta-btn svg {<!-- [et_pb_line_break_holder] -->    width: 14px !important;<!-- [et_pb_line_break_holder] -->    height: 14px !important;<!-- [et_pb_line_break_holder] -->    stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->    fill: none !important;<!-- [et_pb_line_break_holder] -->    stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->    stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->    stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u2550\u2550 RESPONSIVE \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->  @media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft {<!-- [et_pb_line_break_holder] -->      padding: 50px 20px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-header h2 {<!-- [et_pb_line_break_holder] -->      font-size: 28px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft {<!-- [et_pb_line_break_holder] -->      padding: 40px 16px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-header h2 {<!-- [et_pb_line_break_holder] -->      font-size: 26px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-intro {<!-- [et_pb_line_break_holder] -->      font-size: 15px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-step {<!-- [et_pb_line_break_holder] -->      padding: 22px 20px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-step-title {<!-- [et_pb_line_break_holder] -->      font-size: 16px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-step-body {<!-- [et_pb_line_break_holder] -->      font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-step-body ul li {<!-- [et_pb_line_break_holder] -->      font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-step-num {<!-- [et_pb_line_break_holder] -->      width: 32px !important;<!-- [et_pb_line_break_holder] -->      height: 32px !important;<!-- [et_pb_line_break_holder] -->      min-width: 32px !important;<!-- [et_pb_line_break_holder] -->      font-size: 13px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-progress-line {<!-- [et_pb_line_break_holder] -->      width: 10px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-progress-dot {<!-- [et_pb_line_break_holder] -->      width: 22px !important;<!-- [et_pb_line_break_holder] -->      height: 22px !important;<!-- [et_pb_line_break_holder] -->      min-width: 22px !important;<!-- [et_pb_line_break_holder] -->      font-size: 10px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-code-line {<!-- [et_pb_line_break_holder] -->      font-size: 12px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft details.sm-acc summary {<!-- [et_pb_line_break_holder] -->      padding: 16px 18px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-acc-body {<!-- [et_pb_line_break_holder] -->      padding: 4px 18px 20px 18px !important;<!-- [et_pb_line_break_holder] -->      font-size: 14px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-header h2 {<!-- [et_pb_line_break_holder] -->      font-size: 24px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #upl-setup-microsoft .sm-progress {<!-- [et_pb_line_break_holder] -->      padding: 12px !important;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-setup-microsoft\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"sm-container\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- HEADER --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-header\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-header-top\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h2>Setting Up Microsoft OAuth for Outlook API<\/h2>\n<p><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/developer.unipile.com\/docs\/microsoft-oauth\" target=\"_blank\" rel=\"noopener\" class=\"sm-doc-link\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg><!-- [et_pb_line_break_holder] -->          Microsoft OAuth Docs<!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"sm-intro\"><!-- [et_pb_line_break_holder] -->        By default, your integration uses Unipile&#8217;s OAuth credentials. To get a <strong>full white-label experience<\/strong> when end users connect their Microsoft account, create your own app in <strong>Microsoft Entra ID<\/strong>. Follow the <strong>7 steps below<\/strong> to register your app, configure permissions, and connect it to Unipile.<!-- [et_pb_line_break_holder] -->      <\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- PROGRESS BAR --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-progress\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">1<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">2<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">3<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">4<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">5<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">6<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-line\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-progress-item\">\n<div class=\"sm-progress-dot\">7<\/div>\n<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 1 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-1\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">01<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Create a Microsoft Entra ID Account<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>If you don&#8217;t already have one, create a free <a href=\"https:\/\/portal.azure.com\" target=\"_blank\" rel=\"noopener\">Microsoft Entra ID<\/a> account (previously Azure Active Directory). This is the admin portal where you will register your OAuth application.<\/pee><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 2 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-2\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">02<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Register a New App in Azure Portal<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>Log in to <a href=\"https:\/\/portal.azure.com\" target=\"_blank\" rel=\"noopener\">portal.azure.com<\/a>, go to <strong>Microsoft Entra ID<\/strong>, and click <strong>New registration<\/strong>.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><strong>Name your app:<\/strong> this name will be visible to your end users during the OAuth consent screen.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li><strong>Supported account types:<\/strong> select &#8220;Accounts in any organizational directory (Any Microsoft Entra ID, Multitenant) and personal Microsoft accounts&#8221; to support both business and personal Office 365 accounts.<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/b7b4591-1-Azure_Active_Directory.png\" alt=\"Azure Active Directory service\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/f22f350-2-new_registration.png\" alt=\"New App Registration\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 3 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-3\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">03<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Add Redirect URIs<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>Go to the <strong>Authentication<\/strong> panel and click <strong>Add URI<\/strong> under the Web section. Add <strong>2 redirect URIs<\/strong> using your Unipile DSN (available in the <a href=\"https:\/\/dashboard.unipile.com\/\" target=\"_blank\" rel=\"noopener\">Unipile Dashboard<\/a>, top right):<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-redirect\"><!-- [et_pb_line_break_holder] -->          https:\/\/{{YOUR_DSN}}\/api\/v1\/hosted\/microsoft_auth_request_callback<!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->          https:\/\/{{YOUR_DSN_less_port}}\/api\/v1\/hosted\/microsoft_auth_request_callback\/port{{YOUR_PORT}}<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 4 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-4\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">04<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Configure API Permissions<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>Go to <strong>API Permissions > Add a permission > Microsoft Graph<\/strong>, then add the following <strong>Delegated permissions<\/strong>:<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-code-list\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-code-line\">Mail.Read<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-code-line\">Mail.ReadWrite<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-code-line\">Mail.Send<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"sm-code-note\">For Calendar features, also add: Calendars.ReadWrite, Calendars.Read, Calendars.Read.Shared, Calendars.ReadWrite.Shared. Add them in your Unipile Dashboard scopes settings too.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/a90b991-5-Add_a_permission.png\" alt=\"Add API Permission\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/dcf2d72-6-choose_microsoft_graph.png\" alt=\"Choose Microsoft Graph\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/724da36-7-add_all_required_Delegated_permissions.png\" alt=\"Add Delegated Permissions\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/a111759-8-_application_permissions_screen.png\" alt=\"Application Permissions Screen\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 5 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-5\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">05<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Create a Client Secret<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>Go to <strong>Certificates &#038; secrets<\/strong>, click <strong>New client secret<\/strong>. Name the secret and set an expiration of <strong>730 days (24 months)<\/strong>, then click &#8220;Add&#8221;.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-warning\"><!-- [et_pb_line_break_holder] -->          <strong>Important:<\/strong> Copy the secret value immediately. You won&#8217;t be able to retrieve it from this page afterward. Set a calendar reminder before expiration to avoid service interruption.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/1a3779d-9-_New_client_secret.png\" alt=\"New Client Secret\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/0187642-10-_the_secret_and_set_an_expiration_date.png\" alt=\"Set Expiration Date\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/ba37277-11-Copy_the_secret.png\" alt=\"Copy Secret Value\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 6 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-6\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">06<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Connect to Unipile Dashboard<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>Go to the <a href=\"https:\/\/dashboard.unipile.com\/\" target=\"_blank\" rel=\"noopener\">Unipile Dashboard<\/a>, navigate to <strong>Settings > Microsoft OAuth<\/strong>.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<ul><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Copy-paste the <strong>Application (Client) ID<\/strong> from the Azure Overview page.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Paste the <strong>secret value<\/strong> from the Certificates &#038; secrets page.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<li>Click <strong>Save<\/strong>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->        <\/ul>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-info\"><!-- [et_pb_line_break_holder] -->          You are now set to start connecting Microsoft accounts to Unipile. Your end users will see your app name and logo in the OAuth consent screen.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- STEP 7 --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-step\" id=\"sm-step-7\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-head\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-step-num\">07<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<h3 class=\"sm-step-title\">Test the Connection<\/h3>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"sm-step-body\"><!-- [et_pb_line_break_holder] -->        <pee>From the Unipile Dashboard, trigger a new Microsoft account link to verify that your custom OAuth credentials work properly. You should see your <strong>app name<\/strong> and branding in the Microsoft consent prompt instead of Unipile&#8217;s defaults.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-shot\" style=\"max-width: 380px !important;\"><!-- [et_pb_line_break_holder] -->          <img decoding=\"async\" src=\"https:\/\/files.readme.io\/2b9f3ff-consent-prompt.png\" alt=\"Microsoft Consent Prompt with Verified Publisher\"><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- ADVANCED --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-advanced\"><!-- [et_pb_line_break_holder] -->      <span class=\"sm-advanced-label\"><!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"\/><line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\"\/><\/svg><!-- [et_pb_line_break_holder] -->        Optional, For production apps<!-- [et_pb_line_break_holder] -->      <\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Verified Publisher --><!-- [et_pb_line_break_holder] -->      <\/p>\n<details class=\"sm-acc\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<summary><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-num\">8<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-head\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"sm-acc-title\">Become a Verified Publisher<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"sm-acc-sub\">Recommended for production, removes the &#8220;unverified&#8221; warning in the consent screen<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-chevron\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/summary>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-acc-body\"><!-- [et_pb_line_break_holder] -->          <pee>With verification, a blue checkmark appears in the consent prompt. Without it, professional accounts may see an &#8220;unverified publisher&#8221; warning.<\/pee><!-- [et_pb_line_break_holder] -->          <pee><strong>Step 1: Join the Microsoft Partner Network<\/strong><\/pee><!-- [et_pb_line_break_holder] -->          <\/p>\n<ul><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>Sign up at <a href=\"https:\/\/partner.microsoft.com\/en-US\/partnership\" target=\"_blank\" rel=\"noopener\">partner.microsoft.com<\/a> and choose <strong>Microsoft AI Cloud Partner Program<\/strong>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>If you need a work account, <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/fundamentals\/create-new-tenant\" target=\"_blank\" rel=\"noopener\">create a new tenant<\/a> first.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/ul>\n<p><!-- [et_pb_line_break_holder] -->          <pee><strong>Step 2: Verify your domain<\/strong><\/pee><!-- [et_pb_line_break_holder] -->          <pee>Create a file named <code>microsoft-identity-association.json<\/code> and host it at:<\/pee><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-redirect\">https:\/\/yourdomain.com\/.well-known\/microsoft-identity-association.json<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <pee><strong>Step 3: Link your Partner Global Account (PGA) ID<\/strong><\/pee><!-- [et_pb_line_break_holder] -->          <\/p>\n<ul><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>Find your PGA ID via <a href=\"https:\/\/learn.microsoft.com\/en-us\/partner-center\/account-structure\" target=\"_blank\" rel=\"noopener\">Partner Center<\/a>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>In Azure Portal, go to <strong>App Registrations > Your App > Branding &#038; properties<\/strong>, enter the PGA ID, and save.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/ul>\n<p><!-- [et_pb_line_break_holder] -->          <pee>For full details, see the <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity-platform\/publisher-verification-overview\" target=\"_blank\" rel=\"noopener\">Microsoft Publisher Verification documentation<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/details>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- Admin Approval --><!-- [et_pb_line_break_holder] -->      <\/p>\n<details class=\"sm-acc\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<summary><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-num\">9<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-head\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"sm-acc-title\">Handling &#8220;Administrator Approval Required&#8221;<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"sm-acc-sub\">When end users see a consent block from their IT admin<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"sm-acc-chevron\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/summary>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"sm-acc-body\"><!-- [et_pb_line_break_holder] -->          <pee>If a user sees &#8220;Administrator approval required&#8221;, the required consent has not been granted at the tenant level. Two methods to resolve this:<\/pee><!-- [et_pb_line_break_holder] -->          <pee><strong>Method 1: Admin Consent Request in Microsoft Entra<\/strong><\/pee><!-- [et_pb_line_break_holder] -->          <pee>A Microsoft administrator must review and approve the pending admin consent request. See the <a href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity\/enterprise-apps\/review-admin-consent-requests\" target=\"_blank\" rel=\"noopener\">Microsoft documentation on reviewing admin consent requests<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->          <pee><strong>Method 2: OAuth login as admin with tenant-wide consent<\/strong><\/pee><!-- [et_pb_line_break_holder] -->          <\/p>\n<ul><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>The admin starts the OAuth login flow from your app.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>During Microsoft authorization, the admin must tick: <strong>&#8220;Consent on behalf of your organization&#8221;<\/strong>.<\/li>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<li>This grants consent for all users in the organization and prevents the prompt for future users.<\/li>\n<p><!-- [et_pb_line_break_holder] -->          <\/ul>\n<p><!-- [et_pb_line_break_holder] -->          <pee>Full details in the <a href=\"https:\/\/learn.microsoft.com\/en-us\/troubleshoot\/entra\/entra-id\/app-integration\/troubleshoot-consent-issues#perform-admin-consent\" target=\"_blank\" rel=\"noopener\">Microsoft consent troubleshooting guide<\/a>.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/details>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <!-- CTA --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"sm-cta\"><!-- [et_pb_line_break_holder] -->      <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" class=\"sm-cta-btn\"><!-- [et_pb_line_break_holder] -->        Build Now<!-- [et_pb_line_break_holder] -->        <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"><\/polyline><\/svg><!-- [et_pb_line_break_holder] -->      <\/a><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  (function() {<!-- [et_pb_line_break_holder] -->    var dots = document.querySelectorAll('#upl-setup-microsoft .sm-progress-dot');<!-- [et_pb_line_break_holder] -->    dots.forEach(function(dot, idx) {<!-- [et_pb_line_break_holder] -->      dot.addEventListener('click', function() {<!-- [et_pb_line_break_holder] -->        var target = document.getElementById('sm-step-' + (idx + 1));<!-- [et_pb_line_break_holder] -->        if (target) {<!-- [et_pb_line_break_holder] -->          target.scrollIntoView({ behavior: 'smooth', block: 'start' });<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  })();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-usecases,#upl-mg-usecases *,#upl-mg-usecases *::before,#upl-mg-usecases *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases{background:#f4f5f7!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-intro {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-grid {display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:28px!important;box-shadow:0 8px 24px rgba(15,39,54,0.06)!important;transition:transform 0.25s ease,box-shadow 0.25s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card:hover {transform:translateY(-4px)!important;box-shadow:0 16px 40px rgba(15,39,54,0.10)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-icon {width:44px!important;height:44px!important;border-radius:12px!important;background:rgba(59,185,139,0.12)!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-icon svg {width:22px!important;height:22px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card-title {font-family:'Poppins',sans-serif!important;font-size:18px!important;font-weight:700!important;color:#0f2736!important;margin-bottom:10px!important;line-height:1.3!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card-text {font-size:15px!important;line-height:1.75!important;color:#4a5568!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card-link {display:inline-flex!important;align-items:center!important;gap:6px!important;margin-top:16px!important;font-size:13.5px!important;font-weight:600!important;color:#2aaa7e!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-usecases .mgu-card-link svg {width:13px!important;height:13px!important;stroke:#2aaa7e!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgu-grid{grid-template-columns:1fr!important;}.mgu-h2{font-size:28px!important;}.mgu-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgu-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-usecases\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgu-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgu-anchor\" id=\"mg-usecases\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgu-badge\"><span class=\"mgu-badge-dot\"><\/span><span>Use Cases<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgu-h2\">Microsoft Graph API Email Use Cases<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgu-intro\">The microsoft graph api email endpoint powers a wide range of SaaS applications that rely on Outlook and Exchange mailboxes. These are the three most common integration patterns used by teams building on the Graph API today.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgu-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgu-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-card-title\">CRM &#8211; Contact and Email Sync<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgu-card-text\">Sync Outlook email threads and contacts directly into your CRM. Match senders to existing deal records, log every conversation automatically, and surface relationship history without any manual copy-paste from Outlook.<\/pee><!-- [et_pb_line_break_holder] -->        <a class=\"mgu-card-link\" href=\"https:\/\/www.unipile.com\/email-api-guide\/\"><span>Email API Guide<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgu-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"\/><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-card-title\">ATS &#8211; Application Tracking<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgu-card-text\">Track candidate email threads across Outlook mailboxes. Parse incoming application emails, extract attachments, and route them to the right job pipeline &#8211; all via the microsoft graph api email endpoint with zero manual intervention.<\/pee><!-- [et_pb_line_break_holder] -->        <a class=\"mgu-card-link\" href=\"https:\/\/www.unipile.com\/send-email-api\/\"><span>Send Email API<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgu-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgu-card-title\">Support Tools &#8211; Ticket Routing<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgu-card-text\">Convert incoming Outlook emails into support tickets. Use Graph webhooks to receive real-time new-email events, classify by subject or sender domain, and route to the right team queue &#8211; replacing manual triage with automated logic.<\/pee><!-- [et_pb_line_break_holder] -->        <a class=\"mgu-card-link\" href=\"https:\/\/www.unipile.com\/unified-email-api-integration\/\"><span>Unified Email API<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-features,#upl-mg-features *,#upl-mg-features *::before,#upl-mg-features *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-intro {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-grid {display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-card {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:24px!important;box-shadow:0 6px 20px rgba(15,39,54,0.05)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-card-head {display:flex!important;align-items:center!important;gap:14px!important;margin-bottom:12px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-icon {width:40px!important;height:40px!important;min-width:40px!important;border-radius:10px!important;background:rgba(59,185,139,0.10)!important;display:flex!important;align-items:center!important;justify-content:center!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-icon svg {width:20px!important;height:20px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-card-title {font-family:'Poppins',sans-serif!important;font-size:15.5px!important;font-weight:700!important;color:#0f2736!important;line-height:1.3!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-card-text {font-size:14px!important;line-height:1.75!important;color:#4a5568!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-endpoint {display:inline-flex!important;align-items:center!important;gap:6px!important;background:#f4f5f7!important;color:#0f2736!important;font-family:'Courier New',monospace!important;font-size:11.5px!important;font-weight:600!important;padding:5px 10px!important;border-radius:6px!important;margin-top:10px!important;border:1px solid #e5e7eb!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-endpoint-method {color:#2aaa7e!important;font-weight:700!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-features .mgf-endpoint-path {color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){#upl-mg-features .mgf-grid{grid-template-columns:repeat(2,1fr)!important;}#upl-mg-features .mgf-h2{font-size:28px!important;}#upl-mg-features .mgf-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){#upl-mg-features .mgf-grid{grid-template-columns:1fr!important;}#upl-mg-features .mgf-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-features\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgf-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgf-anchor\" id=\"mg-features\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgf-badge\"><span class=\"mgf-badge-dot\"><\/span><span>Features<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgf-h2\">Key Features of Microsoft Graph API Email<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgf-intro\">The Microsoft Graph API for email exposes a comprehensive set of capabilities well beyond basic send and receive. Here are the six most important features every developer should know before building on the Microsoft Graph API email stack.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgf-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Read, Send, and Reply<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Fetch individual messages or paginated lists. Send new emails or reply inline. Move messages between folders or mark as read\/unread.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">GET<\/span> <span class=\"mgf-endpoint-path\">\/v1.0\/me\/messages<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Attachments<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Upload, download, and list file attachments on any message. Supports inline (embedded) attachments and large file uploads via upload sessions for files over 3 MB.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">GET<\/span> <span class=\"mgf-endpoint-path\">\/v1.0\/me\/messages\/{id}\/attachments<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Folders and Labels<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Create, rename, and delete mail folders. List all mailFolders, move messages between them, and manage child folder hierarchies, identical to what users see in Outlook.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">GET<\/span> <span class=\"mgf-endpoint-path\">\/v1.0\/me\/mailFolders<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Search and Filter<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Use OData query parameters ($filter, $search, $orderby) to find emails by sender, subject, date range, or keyword. Supports KQL for advanced full-text search.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">GET<\/span> <span class=\"mgf-endpoint-path\">\/me\/messages?$search=&#8221;project&#8221;<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"\/><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\/><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"\/><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"\/><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Webhook Subscriptions<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Subscribe to change notifications for mailbox events. Receive near real-time HTTP POST callbacks when new emails arrive, messages are read, or folders change.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">POST<\/span> <span class=\"mgf-endpoint-path\">\/v1.0\/subscriptions<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgf-card\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgf-card-head\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-icon\"><svg viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"\/><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"\/><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgf-card-title\">Batch Requests<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <pee class=\"mgf-card-text\">Combine up to 20 individual Graph API requests into a single HTTP call using the $batch endpoint. Dramatically reduces round-trips for operations like bulk email reads.<\/pee><!-- [et_pb_line_break_holder] -->        <span class=\"mgf-endpoint\"><span class=\"mgf-endpoint-method\">POST<\/span> <span class=\"mgf-endpoint-path\">\/v1.0\/$batch<\/span><\/span><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-code,<!-- [et_pb_line_break_holder] -->#upl-mg-code *,<!-- [et_pb_line_break_holder] -->#upl-mg-code *::before,<!-- [et_pb_line_break_holder] -->#upl-mg-code *::after {<!-- [et_pb_line_break_holder] -->  margin:0!important;padding:0!important;box-sizing:border-box!important;<!-- [et_pb_line_break_holder] -->  border:none!important;outline:none!important;<!-- [et_pb_line_break_holder] -->  font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;<!-- [et_pb_line_break_holder] -->  line-height:1.5!important;letter-spacing:normal!important;<!-- [et_pb_line_break_holder] -->  text-transform:none!important;text-decoration:none!important;list-style:none!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code { background:transparent!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-section { background:#f4f5f7!important; padding:70px 24px!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-container { max-width:1100px!important; margin:0 auto!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-badge {<!-- [et_pb_line_break_holder] -->  display:inline-flex!important; align-items:center!important; gap:8px!important;<!-- [et_pb_line_break_holder] -->  background:rgba(221,223,76,0.18)!important; color:#8a8c2e!important;<!-- [et_pb_line_break_holder] -->  padding:6px 14px!important; border-radius:20px!important;<!-- [et_pb_line_break_holder] -->  font-size:12px!important; font-weight:700!important;<!-- [et_pb_line_break_holder] -->  text-transform:uppercase!important; letter-spacing:0.5px!important;<!-- [et_pb_line_break_holder] -->  width:fit-content!important; margin-bottom:16px!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-badge-dot { width:7px!important; height:7px!important; background:#DDDF4C!important; border-radius:50%!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-h2 {<!-- [et_pb_line_break_holder] -->  font-family:'Poppins',sans-serif!important; font-size:35px!important;<!-- [et_pb_line_break_holder] -->  font-weight:700!important; color:#0f2736!important; line-height:1.2!important;<!-- [et_pb_line_break_holder] -->  margin-bottom:12px!important; max-width:720px!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-intro { font-size:16px!important; color:#383838!important; line-height:1.7!important; margin-bottom:36px!important; max-width:760px!important; }<!-- [et_pb_line_break_holder] -->\/* Tab nav *\/<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-tabs { display:flex!important; gap:4px!important; margin-bottom:24px!important; background:#fff!important; border-radius:12px!important; padding:4px!important; border:1px solid #e5e7eb!important; width:fit-content!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-tab {<!-- [et_pb_line_break_holder] -->  padding:9px 20px!important; border-radius:9px!important; font-size:0.8rem!important;<!-- [et_pb_line_break_holder] -->  font-weight:600!important; cursor:pointer!important; color:#64748b!important;<!-- [et_pb_line_break_holder] -->  background:transparent!important; transition:all 0.2s!important; white-space:nowrap!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-tab.active { background:#0f2736!important; color:#fff!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-panel { display:none!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-panel.active { display:block!important; }<!-- [et_pb_line_break_holder] -->\/* Editor *\/<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-editor { border-radius:14px!important; overflow:hidden!important; background:#0d1117!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-editor-bar {<!-- [et_pb_line_break_holder] -->  background:#161b22!important; padding:12px 18px!important;<!-- [et_pb_line_break_holder] -->  display:flex!important; align-items:center!important; gap:8px!important;<!-- [et_pb_line_break_holder] -->  border-bottom:1px solid rgba(255,255,255,0.06)!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-dot { width:12px!important; height:12px!important; border-radius:50%!important; flex-shrink:0!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-dot-r { background:#ff5f57!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-dot-y { background:#febc2e!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-dot-g { background:#28c840!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-filename { color:#8b949e!important; font-size:13px!important; margin-left:6px!important; font-family:'Courier New',monospace!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-pre { padding:22px 24px!important; font-size:13.5px!important; line-height:1.8!important; overflow-x:auto!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-pre code { font-family:'Courier New',monospace!important; white-space:pre!important; display:block!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .c { color:#8b949e!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .k { color:#ff7b72!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .fn { color:#d2a8ff!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .s { color:#a5d6ff!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .n { color:#79c0ff!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .w { color:#e6edf3!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-ok {<!-- [et_pb_line_break_holder] -->  background:rgba(59,185,139,0.1)!important; border-top:1px solid rgba(59,185,139,0.25)!important;<!-- [et_pb_line_break_holder] -->  color:#3BB98B!important; padding:11px 24px!important; font-size:12.5px!important;<!-- [et_pb_line_break_holder] -->  font-family:'Courier New',monospace!important; display:flex!important; align-items:center!important; gap:8px!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-ok-dot { width:8px!important; height:8px!important; background:#3BB98B!important; border-radius:50%!important; flex-shrink:0!important; }<!-- [et_pb_line_break_holder] -->\/* Note box *\/<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-note {<!-- [et_pb_line_break_holder] -->  margin-top:16px!important; background:rgba(59,185,139,0.06)!important;<!-- [et_pb_line_break_holder] -->  border-left:3px solid #3BB98B!important; border-radius:0 8px 8px 0!important;<!-- [et_pb_line_break_holder] -->  padding:14px 16px!important; font-size:14px!important; color:#1e293b!important; line-height:1.65!important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-note strong { color:#0f2736!important; font-weight:600!important; }<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-note a { color:#3BB98B!important; font-weight:600!important; text-decoration:underline!important; }<!-- [et_pb_line_break_holder] -->\/* Sub-label above editor *\/<!-- [et_pb_line_break_holder] -->#upl-mg-code .mc-sub-label { font-size:0.78rem!important; font-weight:700!important; color:#6b7280!important; text-transform:uppercase!important; letter-spacing:0.5px!important; margin-bottom:10px!important; }<!-- [et_pb_line_break_holder] -->@media (max-width:900px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-section { padding:50px 20px!important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-h2 { font-size:28px!important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-tabs { flex-wrap:wrap!important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width:600px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-section { padding:40px 16px!important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-h2 { font-size:26px!important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-code .mc-pre { padding:16px 16px!important; font-size:12px!important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-code\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mc-section\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mc-container\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mc-badge\"><span class=\"mc-badge-dot\"><\/span><span>Code Examples<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<h2 class=\"mc-h2\">How to Send, Read &#038; Sync Emails with Microsoft Graph API<\/h2>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"mc-intro\">Three production-ready patterns covering the core operations every developer needs: sending email, reading messages with filters, and incremental delta sync for real-time mailbox monitoring.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mc-tabs\" id=\"mc-tabs\"><!-- [et_pb_line_break_holder] -->        <button class=\"mc-tab active\" data-tab=\"send\"><span>Send Email<\/span><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"mc-tab\" data-tab=\"read\"><span>Read Messages<\/span><\/button><!-- [et_pb_line_break_holder] -->        <button class=\"mc-tab\" data-tab=\"delta\"><span>Delta Sync<\/span><\/button><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- TAB: SEND EMAIL --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mc-panel active\" id=\"mc-panel-send\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-sub-label\">POST \/v1.0\/me\/sendMail \u2014 Python via Unipile<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-editor\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"mc-dot mc-dot-r\"><\/span><span class=\"mc-dot mc-dot-y\"><\/span><span class=\"mc-dot mc-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mc-filename\">send_outlook_email.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-pre\"><code><span class=\"k\">import<\/span><span class=\"w\"> requests<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Unipile Unified Email API<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Sends via Microsoft Graph \u2014 no direct OAuth required<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">BASE <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"s\">\"https:\/\/api.unipile.com:13465\/api\/v1\"<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">HEADERS <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"s\">\"X-API-KEY\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"YOUR_ACCESS_TOKEN\"<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"application\/json\"<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"fn\">send_outlook_email<\/span><span class=\"w\">(account_id, to, subject, body):<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    payload <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"account_id\"<\/span><span class=\"w\">: account_id,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"to\"<\/span><span class=\"w\">: [{<\/span><span class=\"s\">\"identifier\"<\/span><span class=\"w\">: to}],<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"subject\"<\/span><span class=\"w\">: subject,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"body\"<\/span><span class=\"w\">: body<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    }<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    r <\/span><span class=\"k\">=<\/span><span class=\"w\"> requests.<\/span><span class=\"fn\">post<\/span><span class=\"w\">(f<\/span><span class=\"s\">\"{BASE}\/emails\"<\/span><span class=\"w\">, headers<\/span><span class=\"k\">=<\/span><span class=\"w\">HEADERS, json<\/span><span class=\"k\">=<\/span><span class=\"w\">payload)<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    return<\/span><span class=\"w\"> r.<\/span><span class=\"fn\">json<\/span><span class=\"w\">()<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Example usage<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"fn\">send_outlook_email<\/span><span class=\"w\">(<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"s\">\"acc_outlook_123\"<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    to<\/span><span class=\"k\">=<\/span><span class=\"s\">\"recipient@company.com\"<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    subject<\/span><span class=\"k\">=<\/span><span class=\"s\">\"Meeting follow-up\"<\/span><span class=\"w\">,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    body<\/span><span class=\"k\">=<\/span><span class=\"s\">\"Hi, following up on our call...\"<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">)<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-ok\"><span class=\"mc-ok-dot\"><\/span><span>Email sent via Microsoft Graph \u2014 Outlook account acc_outlook_123<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-note\"><!-- [et_pb_line_break_holder] -->          <strong>Direct Graph API equivalent:<\/strong> <code>POST https:\/\/graph.microsoft.com\/v1.0\/me\/sendMail<\/code> with <code>message.toRecipients<\/code>, <code>message.subject<\/code>, and <code>message.body.content<\/code>. Unipile abstracts the OAuth token refresh and MIME handling. See the <a href=\"https:\/\/www.unipile.com\/send-email-api\/\">Send Email API guide<\/a> for attachment support and reply-threading.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- TAB: READ MESSAGES --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mc-panel\" id=\"mc-panel-read\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-sub-label\">GET \/v1.0\/me\/messages \u2014 filter, select, paginate<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-editor\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"mc-dot mc-dot-r\"><\/span><span class=\"mc-dot mc-dot-y\"><\/span><span class=\"mc-dot mc-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mc-filename\">read_outlook_emails.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-pre\"><code><span class=\"k\">import<\/span><span class=\"w\"> requests<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Read Outlook emails with filters via Unipile<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">BASE <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"s\">\"https:\/\/api.unipile.com:13465\/api\/v1\"<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">HEADERS <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<\/span><span class=\"s\">\"X-API-KEY\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"YOUR_ACCESS_TOKEN\"<\/span><span class=\"w\">}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"fn\">list_outlook_emails<\/span><span class=\"w\">(account_id, sender_filter<\/span><span class=\"k\">=<\/span><span class=\"w\">None, limit<\/span><span class=\"k\">=<\/span><span class=\"n\">20<\/span><span class=\"w\">):<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    params <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"account_id\"<\/span><span class=\"w\">: account_id,<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"s\">\"limit\"<\/span><span class=\"w\">: limit<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    }<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    if<\/span><span class=\"w\"> sender_filter:<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        <\/span><span class=\"c\"># Maps to $filter=from\/emailAddress\/address eq '...'<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        params[<\/span><span class=\"s\">\"from\"<\/span><span class=\"w\">] <\/span><span class=\"k\">=<\/span><span class=\"w\"> sender_filter<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    r <\/span><span class=\"k\">=<\/span><span class=\"w\"> requests.<\/span><span class=\"fn\">get<\/span><span class=\"w\">(f<\/span><span class=\"s\">\"{BASE}\/emails\"<\/span><span class=\"w\">, headers<\/span><span class=\"k\">=<\/span><span class=\"w\">HEADERS, params<\/span><span class=\"k\">=<\/span><span class=\"w\">params)<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    return<\/span><span class=\"w\"> r.<\/span><span class=\"fn\">json<\/span><span class=\"w\">().get(<\/span><span class=\"s\">\"items\"<\/span><span class=\"w\">, [])<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Fetch last 20 emails from a specific sender<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">emails <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"fn\">list_outlook_emails<\/span><span class=\"w\">(<\/span><span class=\"s\">\"acc_outlook_123\"<\/span><span class=\"w\">, sender_filter<\/span><span class=\"k\">=<\/span><span class=\"s\">\"hr@acme.com\"<\/span><span class=\"w\">)<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">for<\/span><span class=\"w\"> e <\/span><span class=\"k\">in<\/span><span class=\"w\"> emails:<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"fn\">print<\/span><span class=\"w\">(e[<\/span><span class=\"s\">\"subject\"<\/span><span class=\"w\">], e[<\/span><span class=\"s\">\"from\"<\/span><span class=\"w\">], e[<\/span><span class=\"s\">\"date\"<\/span><span class=\"w\">])<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-ok\"><span class=\"mc-ok-dot\"><\/span><span>20 messages fetched from Outlook \u2014 filtered by sender domain<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-note\"><!-- [et_pb_line_break_holder] -->          <strong>OData filters supported natively:<\/strong> <code>$filter<\/code>, <code>$search<\/code>, <code>$select<\/code>, <code>$orderby<\/code>, <code>$top<\/code>. Use <code>$search=\"subject:invoice\"<\/code> for KQL full-text search. Attachments over 3MB require an <strong>upload session<\/strong> (<code>POST \/createUploadSession<\/code>) \u2014 not a single multipart request.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- TAB: DELTA SYNC --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mc-panel\" id=\"mc-panel-delta\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-sub-label\">GET \/v1.0\/me\/mailFolders\/inbox\/messages\/delta \u2014 incremental sync<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-editor\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-editor-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"mc-dot mc-dot-r\"><\/span><span class=\"mc-dot mc-dot-y\"><\/span><span class=\"mc-dot mc-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mc-filename\">delta_sync_outlook.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-pre\"><code><span class=\"k\">import<\/span><span class=\"w\"> requests<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Delta Sync \u2014 only fetch emails NEW since last sync<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Unipile handles the deltaToken lifecycle automatically<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">BASE <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"s\">\"https:\/\/api.unipile.com:13465\/api\/v1\"<\/span><span class=\"w\"><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">HEADERS <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<\/span><span class=\"s\">\"X-API-KEY\"<\/span><span class=\"w\">: <\/span><span class=\"s\">\"YOUR_ACCESS_TOKEN\"<\/span><span class=\"w\">}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">def<\/span><span class=\"w\"> <\/span><span class=\"fn\">sync_new_emails<\/span><span class=\"w\">(account_id, cursor<\/span><span class=\"k\">=<\/span><span class=\"w\">None):<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    <\/span><span class=\"c\">\"\"\"<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">    Returns only emails received since last call.<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">    cursor = opaque pagination token (store between calls).<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\">    \"\"\"<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    params <\/span><span class=\"k\">=<\/span><span class=\"w\"> {<\/span><span class=\"s\">\"account_id\"<\/span><span class=\"w\">: account_id}<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    if<\/span><span class=\"w\"> cursor:<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">        params[<\/span><span class=\"s\">\"cursor\"<\/span><span class=\"w\">] <\/span><span class=\"k\">=<\/span><span class=\"w\"> cursor<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    r <\/span><span class=\"k\">=<\/span><span class=\"w\"> requests.<\/span><span class=\"fn\">get<\/span><span class=\"w\">(f<\/span><span class=\"s\">\"{BASE}\/emails\/sync\"<\/span><span class=\"w\">, headers<\/span><span class=\"k\">=<\/span><span class=\"w\">HEADERS, params<\/span><span class=\"k\">=<\/span><span class=\"w\">params)<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">    data <\/span><span class=\"k\">=<\/span><span class=\"w\"> r.<\/span><span class=\"fn\">json<\/span><span class=\"w\">()<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"k\">    return<\/span><span class=\"w\"> data.get(<\/span><span class=\"s\">\"items\"<\/span><span class=\"w\">, []), data.get(<\/span><span class=\"s\">\"cursor\"<\/span><span class=\"w\">)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># First sync \u2014 no cursor<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"w\">emails, next_cursor <\/span><span class=\"k\">=<\/span><span class=\"w\"> <\/span><span class=\"fn\">sync_new_emails<\/span><span class=\"w\">(<\/span><span class=\"s\">\"acc_outlook_123\"<\/span><span class=\"w\">)<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"c\"># Store next_cursor in your DB, use it for subsequent calls<!-- [et_pb_line_break_holder] --><\/span><!-- [et_pb_line_break_holder] --><span class=\"fn\">print<\/span><span class=\"w\">(f<\/span><span class=\"s\">\"{len(emails)} new emails \u2014 next cursor saved\"<\/span><span class=\"w\">)<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mc-ok\"><span class=\"mc-ok-dot\"><\/span><span>Delta sync complete \u2014 0 API calls wasted on already-seen messages<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mc-note\"><!-- [et_pb_line_break_holder] -->          <strong>How delta works natively on Graph:<\/strong> <code>GET \/me\/mailFolders\/inbox\/messages\/delta<\/code> returns a <code>@odata.deltaLink<\/code> on the first call. Store it and use it next time \u2014 Graph returns only the diff. <strong>No polling full mailbox<\/strong> = 10x fewer API calls vs standard <code>GET \/messages<\/code>. Unipile&#8217;s <code>\/emails\/sync<\/code> endpoint wraps this pattern with automatic token management.<!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(function(){<!-- [et_pb_line_break_holder] -->  var tabs = document.querySelectorAll('#upl-mg-code .mc-tab');<!-- [et_pb_line_break_holder] -->  tabs.forEach(function(tab){<!-- [et_pb_line_break_holder] -->    tab.addEventListener('click', function(){<!-- [et_pb_line_break_holder] -->      var key = tab.getAttribute('data-tab');<!-- [et_pb_line_break_holder] -->      tabs.forEach(function(t){ t.classList.remove('active'); });<!-- [et_pb_line_break_holder] -->      tab.classList.add('active');<!-- [et_pb_line_break_holder] -->      document.querySelectorAll('#upl-mg-code .mc-panel').forEach(function(p){ p.classList.remove('active'); });<!-- [et_pb_line_break_holder] -->      var panel = document.getElementById('mc-panel-' + key);<!-- [et_pb_line_break_holder] -->      if(panel) panel.classList.add('active');<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->})();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks,<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks *,<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks *::before,<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important;<!-- [et_pb_line_break_holder] -->  outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important;<!-- [et_pb_line_break_holder] -->  text-decoration: none !important;<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-wrap {<!-- [et_pb_line_break_holder] -->  max-width: 1100px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  padding: 70px 24px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 HEADER \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->  width: fit-content !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important;<!-- [et_pb_line_break_holder] -->  height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-anchor {<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  position: relative !important;<!-- [et_pb_line_break_holder] -->  top: -80px !important;<!-- [et_pb_line_break_holder] -->  visibility: hidden !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-intro {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 GRID \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-grid {<!-- [et_pb_line_break_holder] -->  display: grid !important;<!-- [et_pb_line_break_holder] -->  grid-template-columns: 1fr 1fr !important;<!-- [et_pb_line_break_holder] -->  gap: 32px !important;<!-- [et_pb_line_break_holder] -->  align-items: start !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 40px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 LEFT \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-desc {<!-- [et_pb_line_break_holder] -->  font-size: 16px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.78 !important;<!-- [et_pb_line_break_holder] -->  color: #383838 !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-desc strong {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-note {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.08) !important;<!-- [et_pb_line_break_holder] -->  border-left: 4px solid #3BB98B !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 12px 12px 0 !important;<!-- [et_pb_line_break_holder] -->  padding: 16px 20px !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-note p {<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important;<!-- [et_pb_line_break_holder] -->  color: #1e293b !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-note strong {<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-note code {<!-- [et_pb_line_break_holder] -->  background: rgba(0, 0, 0, 0.06) !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 5px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 ACCORDIONS \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc {<!-- [et_pb_line_break_holder] -->  background: #ffffff !important;<!-- [et_pb_line_break_holder] -->  border: 1px solid #e5e7eb !important;<!-- [et_pb_line_break_holder] -->  border-radius: 16px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  transition: border-color 0.2s ease !important;<!-- [et_pb_line_break_holder] -->  margin-bottom: 12px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc[open] {<!-- [et_pb_line_break_holder] -->  border-color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc summary {<!-- [et_pb_line_break_holder] -->  list-style: none !important;<!-- [et_pb_line_break_holder] -->  cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  padding: 18px 22px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 12px !important;<!-- [et_pb_line_break_holder] -->  user-select: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc summary::-webkit-details-marker {<!-- [et_pb_line_break_holder] -->  display: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-icon {<!-- [et_pb_line_break_holder] -->  width: 34px !important;<!-- [et_pb_line_break_holder] -->  height: 34px !important;<!-- [et_pb_line_break_holder] -->  min-width: 34px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-title {<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important;<!-- [et_pb_line_break_holder] -->  font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  flex: 1 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.4 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-chevron {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  min-width: 18px !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->  transition: transform 0.25s ease !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-chevron svg {<!-- [et_pb_line_break_holder] -->  width: 18px !important;<!-- [et_pb_line_break_holder] -->  height: 18px !important;<!-- [et_pb_line_break_holder] -->  stroke: #6b7280 !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc[open] .mgwh-acc-chevron {<!-- [et_pb_line_break_holder] -->  transform: rotate(180deg) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks details.mgwh-acc[open] .mgwh-acc-chevron svg {<!-- [et_pb_line_break_holder] -->  stroke: #3BB98B !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-body {<!-- [et_pb_line_break_holder] -->  padding: 0 22px 20px 68px !important;<!-- [et_pb_line_break_holder] -->  font-size: 14.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.75 !important;<!-- [et_pb_line_break_holder] -->  color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-acc-body code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !important;<!-- [et_pb_line_break_holder] -->  color: #2da077 !important;<!-- [et_pb_line_break_holder] -->  padding: 2px 6px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 4px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 RIGHT, CODE EDITOR \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-editor {<!-- [et_pb_line_break_holder] -->  border-radius: 14px !important;<!-- [et_pb_line_break_holder] -->  overflow: hidden !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  box-shadow: 0 12px 40px rgba(15, 39, 54, 0.14) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-bar {<!-- [et_pb_line_break_holder] -->  background: #161b22 !important;<!-- [et_pb_line_break_holder] -->  padding: 12px 18px !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-dot {<!-- [et_pb_line_break_holder] -->  width: 12px !important;<!-- [et_pb_line_break_holder] -->  height: 12px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  display: inline-block !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-dot-r { background: #ff5f57 !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-dot-y { background: #febc2e !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-dot-g { background: #28c840 !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-fname {<!-- [et_pb_line_break_holder] -->  color: #8b949e !important;<!-- [et_pb_line_break_holder] -->  font-size: 13px !important;<!-- [et_pb_line_break_holder] -->  margin-left: 6px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-pre {<!-- [et_pb_line_break_holder] -->  padding: 20px 22px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.8 !important;<!-- [et_pb_line_break_holder] -->  overflow-x: auto !important;<!-- [et_pb_line_break_holder] -->  background: #0d1117 !important;<!-- [et_pb_line_break_holder] -->  -webkit-overflow-scrolling: touch !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-pre code {<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  white-space: pre !important;<!-- [et_pb_line_break_holder] -->  display: block !important;<!-- [et_pb_line_break_holder] -->  background: transparent !important;<!-- [et_pb_line_break_holder] -->  padding: 0 !important;<!-- [et_pb_line_break_holder] -->  border-radius: 0 !important;<!-- [et_pb_line_break_holder] -->  color: #e6edf3 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-c  { color: #8b949e !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-k  { color: #ff7b72 !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-fn { color: #d2a8ff !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-s  { color: #a5d6ff !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-w  { color: #e6edf3 !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-n  { color: #79c0ff !important; }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-ok {<!-- [et_pb_line_break_holder] -->  background: rgba(59, 185, 139, 0.1) !important;<!-- [et_pb_line_break_holder] -->  border-top: 1px solid rgba(59, 185, 139, 0.25) !important;<!-- [et_pb_line_break_holder] -->  color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  padding: 11px 24px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12.5px !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Courier New', monospace !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#upl-mg-webhooks .mgwh-ok svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important;<!-- [et_pb_line_break_holder] -->  height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important;<!-- [et_pb_line_break_holder] -->  fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important;<!-- [et_pb_line_break_holder] -->  stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/* \u2550\u2550 RESPONSIVE \u2550\u2550 *\/<!-- [et_pb_line_break_holder] -->@media (max-width: 900px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-grid {<!-- [et_pb_line_break_holder] -->    grid-template-columns: 1fr !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-h2 {<!-- [et_pb_line_break_holder] -->    font-size: 28px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-wrap {<!-- [et_pb_line_break_holder] -->    padding: 50px 16px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-h2 {<!-- [et_pb_line_break_holder] -->    font-size: 26px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-acc-body {<!-- [et_pb_line_break_holder] -->    padding: 0 16px 16px 16px !important;<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-pre {<!-- [et_pb_line_break_holder] -->    font-size: 11.5px !important;<!-- [et_pb_line_break_holder] -->    padding: 16px 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-desc {<!-- [et_pb_line_break_holder] -->    font-size: 15px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks details.mgwh-acc summary {<!-- [et_pb_line_break_holder] -->    padding: 16px 18px !important;<!-- [et_pb_line_break_holder] -->    gap: 10px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-acc-icon {<!-- [et_pb_line_break_holder] -->    width: 30px !important;<!-- [et_pb_line_break_holder] -->    height: 30px !important;<!-- [et_pb_line_break_holder] -->    min-width: 30px !important;<!-- [et_pb_line_break_holder] -->    font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-acc-title {<!-- [et_pb_line_break_holder] -->    font-size: 14px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->@media (max-width: 400px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-webhooks .mgwh-pre {<!-- [et_pb_line_break_holder] -->    font-size: 10.5px !important;<!-- [et_pb_line_break_holder] -->    padding: 14px 12px !important;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-webhooks\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgwh-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgwh-anchor\" id=\"mg-webhooks\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgwh-badge\"><span class=\"mgwh-badge-dot\"><\/span><span>Real-Time<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgwh-h2\">Microsoft Graph API Webhooks for Email Events<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgwh-intro\">Microsoft Graph subscriptions (webhooks) let your server receive HTTP POST notifications the moment an email arrives, is read, moved, or deleted. Below is a complete Python example for subscribing to Inbox events, plus details on lifecycle management.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgwh-grid\"><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- LEFT --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwh-left\"><!-- [et_pb_line_break_holder] -->        <pee class=\"mgwh-desc\">A Graph webhook subscription has two required fields: <strong>changeType<\/strong> (what events to watch) and <strong>notificationUrl<\/strong> (your HTTPS endpoint). Microsoft sends a <strong>validationToken<\/strong> query parameter on first subscription. Your endpoint must echo it back as plain text within 10 seconds to confirm ownership.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwh-note\"><!-- [et_pb_line_break_holder] -->          <pee>Graph subscriptions expire after a maximum of <strong>4230 minutes (~3 days)<\/strong> for mail resources. Your server must renew before expiry via <code>PATCH \/v1.0\/subscriptions\/{id}<\/code> or you will stop receiving notifications silently.<\/pee><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<details class=\"mgwh-acc\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<summary><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-icon\">1<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-title\">Lifecycle Notifications<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <\/summary>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-acc-body\">Microsoft Graph sends lifecycle notifications to a separate <code>lifecycleNotificationUrl<\/code> when a subscription is about to expire or has been revoked. Your server must respond with HTTP 202 to acknowledge. Failure to respond causes subscription termination.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/details>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<details class=\"mgwh-acc\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<summary><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-icon\">2<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-title\">validationToken Handshake<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <\/summary>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-acc-body\">When you POST to \/v1.0\/subscriptions, Microsoft immediately calls your notificationUrl with a GET request containing <code>?validationToken=XXX<\/code>. You must return the token as plain text (Content-Type: text\/plain) with HTTP 200 within 10 seconds. Timeout means subscription creation fails.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/details>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <\/p>\n<details class=\"mgwh-acc\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<summary><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-icon\">3<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-title\">Subscription Expiration<\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-acc-chevron\"><svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->          <\/summary>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-acc-body\">Mail subscriptions expire after at most 4230 minutes. Use a background job or cron to PATCH the <code>expirationDateTime<\/code> before it lapses. You can also re-create a subscription from scratch. Microsoft does not charge extra for renewals.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/details>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- RIGHT --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgwh-right\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgwh-editor\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-bar\"><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-dot mgwh-dot-r\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-dot mgwh-dot-y\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-dot mgwh-dot-g\"><\/span><!-- [et_pb_line_break_holder] -->            <span class=\"mgwh-fname\">create_subscription.py<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-pre\"><code><span class=\"mgwh-k\">import<\/span><span class=\"mgwh-w\"> requests<\/span><span class=\"mgwh-w\">, datetime<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">ACCESS_TOKEN <\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"YOUR_GRAPH_TOKEN\"<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">ENDPOINT <\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"https:\/\/graph.microsoft.com\/v1.0\/subscriptions\"<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"mgwh-c\"># Expiry: max 4230 min from now for mail resources<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">expiry <\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\"> (<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    datetime.datetime.<\/span><span class=\"mgwh-fn\">utcnow<\/span><span class=\"mgwh-w\">()<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    <\/span><span class=\"mgwh-k\">+<\/span><span class=\"mgwh-w\"> datetime.timedelta(minutes<\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-n\">4200<\/span><span class=\"mgwh-w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">).<\/span><span class=\"mgwh-fn\">isoformat<\/span><span class=\"mgwh-w\">() <\/span><span class=\"mgwh-k\">+<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"Z\"<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">payload <\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\"> {<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">  <\/span><span class=\"mgwh-s\">\"changeType\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"created\"<\/span><span class=\"mgwh-w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">  <\/span><span class=\"mgwh-s\">\"notificationUrl\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"https:\/\/yourdomain.com\/webhook\"<\/span><span class=\"mgwh-w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">  <\/span><span class=\"mgwh-s\">\"resource\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"me\/mailFolders('Inbox')\/messages\"<\/span><span class=\"mgwh-w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">  <\/span><span class=\"mgwh-s\">\"expirationDateTime\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> expiry,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">  <\/span><span class=\"mgwh-s\">\"clientState\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"mySecretState\"<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">}<\/span><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">r <\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\"> requests.<\/span><span class=\"mgwh-fn\">post<\/span><span class=\"mgwh-w\">(<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    ENDPOINT,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    json<\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\">payload,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    headers<\/span><span class=\"mgwh-k\">=<\/span><span class=\"mgwh-w\">{<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">        <\/span><span class=\"mgwh-s\">\"Authorization\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">f\"Bearer {ACCESS_TOKEN}\"<\/span><span class=\"mgwh-w\">,<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">        <\/span><span class=\"mgwh-s\">\"Content-Type\"<\/span><span class=\"mgwh-k\">:<\/span><span class=\"mgwh-w\"> <\/span><span class=\"mgwh-s\">\"application\/json\"<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">    }<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-w\">)<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-fn\">print<\/span><span class=\"mgwh-w\">(r.<\/span><span class=\"mgwh-fn\">json<\/span><span class=\"mgwh-w\">()[<\/span><span class=\"mgwh-s\">\"id\"<\/span><span class=\"mgwh-w\">])<\/span><!-- [et_pb_line_break_holder] --><span class=\"mgwh-c\"># sub_xxxxxxxx-xxxx-xxxx-xxxx<\/span><\/code><\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgwh-ok\"><!-- [et_pb_line_break_holder] -->            <svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><!-- [et_pb_line_break_holder] -->            <span>201 Created, subscription active for Inbox events<\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-ctamid,#upl-mg-ctamid *,#upl-mg-ctamid *::before,#upl-mg-ctamid *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid{background:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-wrap {max-width:820px!important;margin:0 auto!important;padding:70px 24px!important;text-align:center!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-eyebrow {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.15)!important;color:#3BB98B!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-eyebrow-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#fff!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-sub {font-size:18px!important;line-height:1.7!important;color:rgba(255,255,255,0.75)!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-btn {display:inline-flex!important;align-items:center!important;gap:8px!important;background:#DDDF4C!important;color:#0f2736!important;padding:16px 34px!important;border-radius:8px!important;font-size:1rem!important;font-weight:700!important;border:2px solid #DDDF4C!important;transition:transform 0.3s ease!important;cursor:pointer!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-btn:hover {transform:translateY(-5px)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-btn svg {width:16px!important;height:16px!important;stroke:#0f2736!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-ctamid .mgcta-sub2 {margin-top:16px!important;font-size:13px!important;color:rgba(255,255,255,0.45)!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgcta-h2{font-size:28px!important;}.mgcta-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgcta-h2{font-size:26px!important;}.mgcta-btn{width:100%!important;justify-content:center!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-ctamid\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgcta-wrap\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgcta-eyebrow\"><span class=\"mgcta-eyebrow-dot\"><\/span><span>Unipile<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgcta-h2\">Skip the Complexity &#8211; Use Unipile&#8217;s Unified Email API<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgcta-sub\">Connect Microsoft Graph, Gmail, and IMAP with one SDK. No per-provider OAuth flows, no token refresh logic, no webhook infrastructure to maintain. Your team ships email features in days, not weeks.<\/pee><!-- [et_pb_line_break_holder] -->    <a class=\"mgcta-btn\" href=\"https:\/\/dashboard.unipile.com\/signup\/\" target=\"_blank\"><span>Start for Free<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->    <pee class=\"mgcta-sub2\">No credit card required. SOC 2 Type II compliant.<\/pee><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-limits,#upl-mg-limits *,#upl-mg-limits *::before,#upl-mg-limits *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits{background:#f4f5f7!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(221,223,76,0.18)!important;color:#8a8c2e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-badge-dot {width:7px!important;height:7px!important;background:#DDDF4C!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-intro {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-note {background:rgba(221,223,76,0.12)!important;border-left:4px solid #DDDF4C!important;border-radius:0 12px 12px 0!important;padding:16px 20px!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-note p {font-size:14.5px!important;line-height:1.7!important;color:#1e293b!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-note strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table-wrap {overflow-x:auto!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table {width:100%!important;border-collapse:separate!important;border-spacing:0!important;border-radius:14px!important;overflow:hidden!important;border:1px solid #e5e7eb!important;background:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table th, #upl-mg-limits .mgl-table td {padding:14px 18px!important;text-align:left!important;font-size:14.5px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table thead tr {background:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table thead th {color:#fff!important;font-weight:600!important;font-size:13px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table tbody tr:nth-child(even) {background:#f8fafc!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table tbody tr:nth-child(odd) {background:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table tbody td {color:#383838!important;border-top:1px solid #f0f2f5!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-table tbody td:first-child {font-family:'Courier New',monospace!important;font-weight:700!important;font-size:13px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-code-pill {display:inline-block!important;padding:2px 8px!important;border-radius:6px!important;font-family:'Courier New',monospace!important;font-size:12px!important;font-weight:600!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-code-err {background:rgba(234,67,53,0.1)!important;color:#c0392b!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-limits .mgl-code-warn {background:rgba(221,223,76,0.18)!important;color:#8a8c2e!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgl-h2{font-size:28px!important;}.mgl-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgl-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-limits\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgl-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgl-anchor\" id=\"mg-limits\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgl-badge\"><span class=\"mgl-badge-dot\"><\/span><span>Limits<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgl-h2\">Microsoft Graph API Rate Limits and Error Handling<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgl-intro\">The microsoft graph api email endpoint applies throttling at multiple levels: per user, per application, and per tenant. Understanding these limits before you go to production prevents silent failures and degraded reliability in your integration.<\/pee><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgl-note\"><!-- [et_pb_line_break_holder] -->      <pee>When throttled, Microsoft Graph returns <strong>HTTP 429 Too Many Requests<\/strong> with a <strong>Retry-After<\/strong> header specifying seconds to wait. Always read this header and back off accordingly &#8211; hammering after a 429 will extend the throttle window, not shorten it.<\/pee><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgl-table-wrap\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<table class=\"mgl-table\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<thead><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>HTTP Code<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Error name<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Cause<\/th>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<th>Fix<\/th>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/thead>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<tbody><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgl-code-pill mgl-code-warn\">429<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>TooManyRequests<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Rate limit exceeded (10,000 req \/ 10 min per app or 1,000 req \/ 1 min per user)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Read Retry-After header. Implement exponential backoff. Use $batch to combine requests.<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgl-code-pill mgl-code-err\">401<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Unauthorized<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Access token expired or missing Authorization header<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Refresh token via MSAL. Check token expiry before each request. Use token caching.<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgl-code-pill mgl-code-err\">403<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Forbidden<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Missing Mail.Read or Mail.Send permission in Azure App Registration<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Add required Graph permissions in Azure Portal and re-consent (or admin-consent for app permissions).<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgl-code-pill mgl-code-err\">404<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>ResourceNotFound<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Message ID or folder ID does not exist (deleted or wrong tenant)<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Verify IDs via GET before acting on them. Handle 404 gracefully as a soft delete signal.<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<tr><!-- [et_pb_line_break_holder] -->            <\/p>\n<td><span class=\"mgl-code-pill mgl-code-err\">500<\/span><\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>InternalServerError<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Transient Microsoft server error<\/td>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<td>Retry with exponential backoff (1s, 2s, 4s). Log the request-id header for Microsoft support.<\/td>\n<p><!-- [et_pb_line_break_holder] -->          <\/tr>\n<p><!-- [et_pb_line_break_holder] -->        <\/tbody>\n<p><!-- [et_pb_line_break_holder] -->      <\/table>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-unified,#upl-mg-unified *,#upl-mg-unified *::before,#upl-mg-unified *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified{background:transparent!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-wrap {max-width:1100px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-intro {font-size:17px!important;line-height:1.75!important;color:#383838!important;margin-bottom:32px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-pills {display:flex!important;flex-wrap:wrap!important;gap:12px!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-pill {display:inline-flex!important;align-items:center!important;gap:10px!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:50px!important;padding:8px 16px!important;font-size:14px!important;font-weight:600!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-pill img {width:20px!important;height:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-grid {display:grid!important;grid-template-columns:1fr 1fr!important;gap:32px!important;align-items:center!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-left {}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-desc {font-size:16px!important;line-height:1.78!important;color:#383838!important;margin-bottom:20px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-list {display:flex!important;flex-direction:column!important;gap:12px!important;margin-bottom:28px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-list-item {display:flex!important;align-items:flex-start!important;gap:12px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-check {width:22px!important;height:22px!important;min-width:22px!important;border-radius:50%!important;background:rgba(59,185,139,0.12)!important;display:flex!important;align-items:center!important;justify-content:center!important;margin-top:1px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-check svg {width:12px!important;height:12px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:3!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-list-text {font-size:15px!important;line-height:1.7!important;color:#383838!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-list-text strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-link {display:inline-flex!important;align-items:center!important;gap:6px!important;font-size:14px!important;font-weight:600!important;color:#2aaa7e!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-link svg {width:14px!important;height:14px!important;stroke:#2aaa7e!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-right {}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-card {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:28px!important;box-shadow:0 8px 32px rgba(15,39,54,0.08)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-card-label {font-size:11px!important;font-weight:700!important;color:#94a3b8!important;text-transform:uppercase!important;letter-spacing:1px!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-provider {display:flex!important;align-items:center!important;gap:14px!important;padding:12px 0!important;border-bottom:1px solid #f0f2f5!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-provider:last-child {border-bottom:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-logo {width:36px!important;height:36px!important;border-radius:8px!important;background:#f4f5f7!important;display:flex!important;align-items:center!important;justify-content:center!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-logo img {width:22px!important;height:22px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-info {}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-name {font-weight:700!important;color:#0f2736!important;font-size:14.5px!important;margin-bottom:2px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-sub {font-size:12.5px!important;color:#6b7280!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-unified .mgun-prov-badge {display:inline-flex!important;align-items:center!important;gap:5px!important;background:rgba(59,185,139,0.1)!important;color:#2aaa7e!important;padding:2px 8px!important;border-radius:10px!important;font-size:11px!important;font-weight:600!important;margin-left:auto!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgun-grid{grid-template-columns:1fr!important;}.mgun-h2{font-size:28px!important;}.mgun-wrap{padding:50px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgun-h2{font-size:26px!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-unified\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgun-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgun-anchor\" id=\"mg-unified\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgun-badge\"><span class=\"mgun-badge-dot\"><\/span><span>Multi-Provider<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgun-h2\">Beyond Microsoft Graph: Unified Email API for Gmail, Outlook and IMAP<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgun-intro\">Managing the microsoft graph api email integration is only the beginning. Most SaaS products need to support Gmail, Outlook, and IMAP simultaneously &#8211; meaning three separate OAuth flows, three token refresh loops, and three webhook systems. Unipile&#8217;s <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\" style=\"color:#2aaa7e;text-decoration:underline;\">unified email API<\/a> abstracts all three providers behind a single endpoint.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgun-pills\"><!-- [et_pb_line_break_holder] -->      <span class=\"mgun-pill\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail logo\"><span>Gmail API<\/span><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"mgun-pill\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook logo\"><span>Microsoft Graph<\/span><\/span><!-- [et_pb_line_break_holder] -->      <span class=\"mgun-pill\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP logo\"><span>IMAP \/ SMTP<\/span><\/span><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgun-grid\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgun-left\"><!-- [et_pb_line_break_holder] -->        <pee class=\"mgun-desc\">With Unipile&#8217;s <a href=\"https:\/\/www.unipile.com\/unified-email-api-integration\/\" style=\"color:#2aaa7e;text-decoration:underline;\">unified email API integration<\/a>, you write one integration and instantly support all three provider types. Linked accounts are managed by Unipile &#8211; your backend only talks to one REST endpoint regardless of whether the user&#8217;s mailbox runs on Microsoft Graph, Gmail, or IMAP.<\/pee><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgun-list\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-list-item\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee class=\"mgun-list-text\"><strong>No OAuth flows to manage<\/strong> &#8211; Unipile handles token acquisition, refresh, and revocation for Microsoft Graph and Gmail on your behalf.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-list-item\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee class=\"mgun-list-text\"><strong>Unified webhook events<\/strong> &#8211; one notificationUrl receives email events from all providers with a normalized JSON schema. No per-provider subscription management.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-list-item\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-check\"><svg viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <pee class=\"mgun-list-text\"><strong>SOC 2 Type II compliant<\/strong> &#8211; all email data in transit is encrypted. Unipile does not store email content beyond what your integration requires.<\/pee><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div style=\"display:flex;gap:16px;flex-wrap:wrap;\"><!-- [et_pb_line_break_holder] -->          <a class=\"mgun-link\" href=\"https:\/\/www.unipile.com\/email-api-guide\/\"><span>Full Email API Guide<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->          <a class=\"mgun-link\" href=\"https:\/\/www.unipile.com\/the-developers-guide-to-imap-api-solution\/\"><span>IMAP API Guide<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/a><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgun-right\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgun-card\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-card-label\">Supported email providers<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-provider\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-logo\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" alt=\"Outlook logo\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-info\"><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-name\">Outlook \/ Microsoft 365<\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-sub\">via Microsoft Graph API<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <span class=\"mgun-prov-badge\"><svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Active<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-provider\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-logo\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/gmail-3.svg\" alt=\"Gmail logo\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-info\"><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-name\">Gmail<\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-sub\">via Gmail API (Google)<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <span class=\"mgun-prov-badge\"><svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Active<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgun-provider\"><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-logo\"><img decoding=\"async\" src=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/imap-1.svg\" alt=\"IMAP logo\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"mgun-prov-info\"><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-name\">IMAP \/ SMTP<\/div>\n<p><!-- [et_pb_line_break_holder] -->              <\/p>\n<div class=\"mgun-prov-sub\">Universal email fallback<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <span class=\"mgun-prov-badge\"><svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"flex-shrink:0\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><span>Active<\/span><\/span><!-- [et_pb_line_break_holder] -->          <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; custom_padding=&#8221;0px|0px|0px|0px|false|false&#8221; da_disable_devices=&#8221;off|off|off&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221;][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.4&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal,<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal *,<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal *::before,<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal *::after {<!-- [et_pb_line_break_holder] -->  margin: 0 !important; padding: 0 !important; box-sizing: border-box !important;<!-- [et_pb_line_break_holder] -->  border: none !important; outline: none !important;<!-- [et_pb_line_break_holder] -->  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.5 !important; letter-spacing: normal !important;<!-- [et_pb_line_break_holder] -->  text-transform: none !important; text-decoration: none !important; list-style: none !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal { background: transparent !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-section {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  padding: 80px 24px !important;<!-- [et_pb_line_break_holder] -->  text-align: center !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-inner {<!-- [et_pb_line_break_holder] -->  max-width: 720px !important;<!-- [et_pb_line_break_holder] -->  margin: 0 auto !important;<!-- [et_pb_line_break_holder] -->  display: flex !important;<!-- [et_pb_line_break_holder] -->  flex-direction: column !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 20px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-badge {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important;<!-- [et_pb_line_break_holder] -->  align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important;<!-- [et_pb_line_break_holder] -->  background: rgba(59,185,139,0.12) !important;<!-- [et_pb_line_break_holder] -->  color: #2aaa7e !important;<!-- [et_pb_line_break_holder] -->  padding: 6px 14px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 20px !important;<!-- [et_pb_line_break_holder] -->  font-size: 12px !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  text-transform: uppercase !important;<!-- [et_pb_line_break_holder] -->  letter-spacing: 0.5px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-badge-dot {<!-- [et_pb_line_break_holder] -->  width: 7px !important; height: 7px !important;<!-- [et_pb_line_break_holder] -->  background: #3BB98B !important; border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-h2 {<!-- [et_pb_line_break_holder] -->  font-family: 'Poppins', sans-serif !important;<!-- [et_pb_line_break_holder] -->  font-size: 35px !important; font-weight: 700 !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important; line-height: 1.2 !important;<!-- [et_pb_line_break_holder] -->  max-width: 640px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-sub {<!-- [et_pb_line_break_holder] -->  font-size: 17px !important; color: #4a5568 !important;<!-- [et_pb_line_break_holder] -->  line-height: 1.7 !important; max-width: 540px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-actions {<!-- [et_pb_line_break_holder] -->  display: flex !important; align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important; gap: 16px !important;<!-- [et_pb_line_break_holder] -->  flex-wrap: wrap !important; margin-top: 8px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-primary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important; align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important; background: #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important; padding: 14px 28px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important; font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 700 !important; border: 2px solid #DDDF4C !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important; cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-primary:hover { transform: translateY(-5px) !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-primary svg {<!-- [et_pb_line_break_holder] -->  width: 16px !important; height: 16px !important;<!-- [et_pb_line_break_holder] -->  stroke: #0f2736 !important; fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important; stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important; flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-secondary {<!-- [et_pb_line_break_holder] -->  display: inline-flex !important; align-items: center !important;<!-- [et_pb_line_break_holder] -->  gap: 8px !important; background: transparent !important;<!-- [et_pb_line_break_holder] -->  color: #0f2736 !important; padding: 12px 24px !important;<!-- [et_pb_line_break_holder] -->  border-radius: 8px !important; font-size: 0.95rem !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important; border: 2px solid #0f2736 !important;<!-- [et_pb_line_break_holder] -->  transition: all 0.3s ease !important; cursor: pointer !important;<!-- [et_pb_line_break_holder] -->  white-space: nowrap !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-secondary:hover {<!-- [et_pb_line_break_holder] -->  background: #0f2736 !important; color: #ffffff !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-btn-secondary svg {<!-- [et_pb_line_break_holder] -->  width: 14px !important; height: 14px !important;<!-- [et_pb_line_break_holder] -->  stroke: currentColor !important; fill: none !important;<!-- [et_pb_line_break_holder] -->  stroke-width: 2.5 !important; stroke-linecap: round !important;<!-- [et_pb_line_break_holder] -->  stroke-linejoin: round !important; flex-shrink: 0 !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-divider {<!-- [et_pb_line_break_holder] -->  width: 100% !important; height: 1px !important;<!-- [et_pb_line_break_holder] -->  background: #e5e7eb !important; margin-top: 16px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-links {<!-- [et_pb_line_break_holder] -->  display: flex !important; align-items: center !important;<!-- [et_pb_line_break_holder] -->  justify-content: center !important; flex-wrap: wrap !important;<!-- [et_pb_line_break_holder] -->  gap: 8px 6px !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-link {<!-- [et_pb_line_break_holder] -->  font-size: 0.78rem !important; color: #3BB98B !important;<!-- [et_pb_line_break_holder] -->  font-weight: 600 !important;<!-- [et_pb_line_break_holder] -->  transition: color 0.2s !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-link:hover { color: #2da077 !important; }<!-- [et_pb_line_break_holder] -->#upl-mg-ctafinal .cf-link-sep {<!-- [et_pb_line_break_holder] -->  width: 4px !important; height: 4px !important;<!-- [et_pb_line_break_holder] -->  background: #cbd5e0 !important; border-radius: 50% !important;<!-- [et_pb_line_break_holder] -->  flex-shrink: 0 !important; display: inline-block !important;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->@media (max-width: 600px) {<!-- [et_pb_line_break_holder] -->  #upl-mg-ctafinal .cf-section { padding: 60px 20px !important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-ctafinal .cf-h2 { font-size: 28px !important; }<!-- [et_pb_line_break_holder] -->  #upl-mg-ctafinal .cf-sub { font-size: 15px !important; }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-ctafinal\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"cf-section\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"cf-inner\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cf-badge\"><span class=\"cf-badge-dot\"><\/span><span>Get Started<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<h2 class=\"cf-h2\">Start Integrating Microsoft Graph Email in Minutes<\/h2>\n<p><!-- [et_pb_line_break_holder] -->      <pee class=\"cf-sub\">Join 200+ SaaS teams using Unipile to connect Outlook, Gmail, and IMAP under a single API. No vendor lock-in. SOC 2 compliant.<\/pee><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cf-actions\"><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/dashboard.unipile.com\/signup\/\" class=\"cf-btn-primary\" target=\"_blank\"><!-- [et_pb_line_break_holder] -->          <span>Start for Free<\/span><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/developers.unipile.com\" class=\"cf-btn-secondary\" target=\"_blank\"><!-- [et_pb_line_break_holder] -->          <svg viewBox=\"0 0 24 24\"><polyline points=\"16 18 22 12 16 6\"\/><polyline points=\"8 6 2 12 8 18\"\/><\/svg><!-- [et_pb_line_break_holder] -->          <span>View API Docs<\/span><!-- [et_pb_line_break_holder] -->        <\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cf-divider\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"cf-links\"><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\" class=\"cf-link\">Email API Guide<\/a><!-- [et_pb_line_break_holder] -->        <span class=\"cf-link-sep\"><\/span><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/unified-email-api-integration\/\" class=\"cf-link\">Unified Email API<\/a><!-- [et_pb_line_break_holder] -->        <span class=\"cf-link-sep\"><\/span><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/the-developers-guide-to-imap-api-solution\/\" class=\"cf-link\">IMAP API Guide<\/a><!-- [et_pb_line_break_holder] -->        <span class=\"cf-link-sep\"><\/span><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/gmail-api-send-email-a-comprehensive-guide-for-developers\/\" class=\"cf-link\">Gmail API Guide<\/a><!-- [et_pb_line_break_holder] -->        <span class=\"cf-link-sep\"><\/span><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/send-email-api\/\" class=\"cf-link\">Send Email API<\/a><!-- [et_pb_line_break_holder] -->        <span class=\"cf-link-sep\"><\/span><!-- [et_pb_line_break_holder] -->        <a href=\"https:\/\/www.unipile.com\/secure-email-api-keeping-user-data-safe\/\" class=\"cf-link\">Secure Email API<\/a><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8221;4.27.3&#8243; background_color=&#8221;transparent&#8221; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;][et_pb_code _builder_version=&#8221;4.27.3&#8243; global_colors_info=&#8221;{}&#8221; theme_builder_area=&#8221;post_content&#8221;]<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&#038;family=Poppins:wght@700;800&#038;display=swap\" rel=\"stylesheet\">\n<style><!-- [et_pb_line_break_holder] -->#upl-mg-faq,#upl-mg-faq *,#upl-mg-faq *::before,#upl-mg-faq *::after{margin:0!important;padding:0!important;box-sizing:border-box!important;border:none!important;outline:none!important;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif!important;line-height:1.5!important;letter-spacing:normal!important;text-transform:none!important;text-decoration:none!important;list-style:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq{background:#f4f5f7!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-wrap {max-width:900px!important;margin:0 auto!important;padding:70px 24px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-badge {display:inline-flex!important;align-items:center!important;gap:8px!important;background:rgba(59,185,139,0.12)!important;color:#2aaa7e!important;padding:6px 14px!important;border-radius:20px!important;font-size:12px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:0.5px!important;width:fit-content!important;margin-bottom:16px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-badge-dot {width:7px!important;height:7px!important;background:#3BB98B!important;border-radius:50%!important;flex-shrink:0!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-h2 {font-family:'Poppins',sans-serif!important;font-size:35px!important;font-weight:700!important;color:#0f2736!important;line-height:1.2!important;margin-bottom:12px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-anchor {display:block!important;position:relative!important;top:-80px!important;visibility:hidden!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-intro {font-size:16px!important;line-height:1.75!important;color:#383838!important;margin-bottom:36px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-list {display:flex!important;flex-direction:column!important;gap:12px!important;margin-bottom:40px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-item {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;overflow:hidden!important;transition:border-color 0.2s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-item.active {border-color:#3BB98B!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-header {display:flex!important;align-items:center!important;gap:16px!important;padding:20px 24px!important;cursor:pointer!important;user-select:none!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-num {width:38px!important;height:38px!important;min-width:38px!important;border-radius:10px!important;background:rgba(59,185,139,0.10)!important;color:#2aaa7e!important;display:flex!important;align-items:center!important;justify-content:center!important;font-family:'Poppins',sans-serif!important;font-size:13px!important;font-weight:700!important;transition:background 0.2s ease,color 0.2s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-item.active .mgfaq-num {background:#3BB98B!important;color:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-question {font-size:16px!important;font-weight:600!important;color:#0f2736!important;flex:1!important;line-height:1.4!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-toggle {width:22px!important;height:22px!important;min-width:22px!important;border-radius:6px!important;background:rgba(59,185,139,0.08)!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:transform 0.25s ease,background 0.2s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-item.active .mgfaq-toggle {background:#3BB98B!important;transform:rotate(45deg)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-toggle svg {width:14px!important;height:14px!important;stroke:#3BB98B!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-item.active .mgfaq-toggle svg {stroke:#fff!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-body {max-height:0!important;overflow:hidden!important;transition:max-height 0.35s ease!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-body.open {max-height:600px!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-answer {padding:0 28px 28px 76px!important;font-size:15px!important;line-height:1.78!important;color:#4a5568!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-answer a {color:#2aaa7e!important;text-decoration:underline!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-answer strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-bar {background:#fff!important;border:1px solid #e5e7eb!important;border-radius:16px!important;padding:24px 28px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:20px!important;flex-wrap:wrap!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-text {font-size:15.5px!important;color:#383838!important;line-height:1.6!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-text strong {font-weight:700!important;color:#0f2736!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-btn {display:inline-flex!important;align-items:center!important;gap:8px!important;background:#DDDF4C!important;color:#0f2736!important;padding:12px 22px!important;border-radius:8px!important;font-size:0.9rem!important;font-weight:600!important;border:2px solid #DDDF4C!important;transition:transform 0.25s ease!important;cursor:pointer!important;white-space:nowrap!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-btn:hover {transform:translateY(-3px)!important;}<!-- [et_pb_line_break_holder] -->#upl-mg-faq .mgfaq-cta-btn svg {width:14px!important;height:14px!important;stroke:#0f2736!important;fill:none!important;stroke-width:2.5!important;stroke-linecap:round!important;stroke-linejoin:round!important;}<!-- [et_pb_line_break_holder] -->@media(max-width:900px){.mgfaq-h2{font-size:28px!important;}.mgfaq-wrap{padding:50px 16px!important;}.mgfaq-answer{padding:0 16px 20px 16px!important;}}<!-- [et_pb_line_break_holder] -->@media(max-width:600px){.mgfaq-h2{font-size:26px!important;}.mgfaq-cta-bar{flex-direction:column!important;align-items:flex-start!important;}.mgfaq-cta-btn{width:100%!important;justify-content:center!important;}}<!-- [et_pb_line_break_holder] --><\/style>\n<p><\/head><body><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"upl-mg-faq\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"mgfaq-wrap\"><!-- [et_pb_line_break_holder] -->    <span class=\"mgfaq-anchor\" id=\"mg-faq\"><\/span><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgfaq-badge\"><span class=\"mgfaq-badge-dot\"><\/span><span>FAQ<\/span><\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<h2 class=\"mgfaq-h2\">Frequently Asked Questions<\/h2>\n<p><!-- [et_pb_line_break_holder] -->    <pee class=\"mgfaq-intro\">Everything developers ask before building on the microsoft graph api email endpoint &#8211; from authentication to rate limits to provider coverage.<\/pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgfaq-list\" id=\"mgfaq-list\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"0\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">01<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">What is Microsoft Graph API for email?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">The <strong>Microsoft Graph API for email<\/strong> is the official REST endpoint provided by Microsoft for accessing Outlook and Exchange mailbox data. It lives at <code style=\"background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-family:'Courier New',monospace;font-size:12.5px;\">https:\/\/graph.microsoft.com\/v1.0\/me\/messages<\/code> and uses OAuth 2.0 authentication via Azure Active Directory. It supports reading, sending, searching, and managing emails, as well as receiving real-time change notifications via webhook subscriptions.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"1\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">02<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">How does OAuth 2.0 work with Microsoft Graph?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">Microsoft Graph uses Azure Active Directory (Entra ID) for authentication. You register an application in the Azure portal, configure the required Graph API permissions (like <strong>Mail.Read<\/strong> and <strong>Mail.Send<\/strong>), and use the Microsoft Authentication Library (MSAL) to acquire access tokens. There are two main flows: <strong>delegated<\/strong> (user signs in interactively) and <strong>application<\/strong> (server-to-server, no user interaction). Tokens expire after 1 hour and must be refreshed automatically.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"2\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">03<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">Does Microsoft Graph API support IMAP?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">Microsoft Graph API does not use IMAP internally &#8211; it is a REST API that abstracts the underlying mail protocol. However, Outlook accounts can still be accessed via IMAP (with OAuth 2.0, since Basic Auth was retired). For Outlook email integration, Microsoft strongly recommends using Graph API over IMAP because it offers more features, better performance, and full webhook support. For non-Microsoft mailboxes, <a href=\"https:\/\/www.unipile.com\/the-developers-guide-to-imap-api-solution\/\">IMAP remains the universal fallback<\/a>.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"3\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">04<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">What are the rate limits for Microsoft Graph email API?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">Microsoft Graph enforces throttling at multiple levels. The general limit is <strong>10,000 requests per 10 minutes per application<\/strong>. Per-user limits can be lower depending on the operation type. When throttled, the API returns HTTP 429 with a <strong>Retry-After<\/strong> header. Best practices: implement exponential backoff, use $batch to combine up to 20 requests into one HTTP call, and cache frequently accessed data to minimize redundant calls.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"4\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">05<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">How do I set up webhooks with Microsoft Graph API?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">POST to <code style=\"background:rgba(0,0,0,0.06);padding:2px 5px;border-radius:4px;font-family:'Courier New',monospace;font-size:12.5px;\">\/v1.0\/subscriptions<\/code> with a <strong>changeType<\/strong> (e.g., &#8220;created&#8221;), a <strong>notificationUrl<\/strong> pointing to your HTTPS endpoint, and a <strong>resource<\/strong> (e.g., &#8220;me\/mailFolders(&#8216;Inbox&#8217;)\/messages&#8221;). Microsoft immediately sends a GET request with a <strong>validationToken<\/strong> &#8211; your server must echo it back as plain text within 10 seconds. Subscriptions expire after 4230 minutes maximum and must be renewed via PATCH before expiry.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"5\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">06<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">Can I send emails on behalf of a user with Microsoft Graph?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">Yes. With <strong>delegated permissions<\/strong> (Mail.Send), you can send email on behalf of the signed-in user from their own mailbox. With <strong>application permissions<\/strong> (Mail.Send), you can send on behalf of any user in the tenant without them being signed in &#8211; useful for automated notifications or CRM integrations. See also: <a href=\"https:\/\/www.unipile.com\/send-email-on-behalf-of-user-api\/\">Send Email on Behalf of User API guide<\/a>.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-item\" data-idx=\"6\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-header\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-num\">07<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-question\">What is the difference between Microsoft Graph API and EWS?<\/div>\n<p><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-toggle\"><svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"mgfaq-body\"><!-- [et_pb_line_break_holder] -->          <\/p>\n<div class=\"mgfaq-answer\">Exchange Web Services (EWS) is a SOAP-based API Microsoft built for on-premises Exchange. <strong>Microsoft Graph API is the modern REST replacement<\/strong> and is the only recommended approach for new integrations. EWS is in maintenance mode &#8211; no new features are being added and Microsoft has announced plans to retire it for Exchange Online. If you still use EWS, migrate to Graph API now. For legacy on-premises Exchange (2013\/2016), EWS may still be your only option, but Unipile&#8217;s <a href=\"https:\/\/www.unipile.com\/email-api-guide\/\">email API<\/a> can help bridge the gap.<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"mgfaq-cta-bar\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"mgfaq-cta-text\"><strong>Still have questions?<\/strong> Our team is here to help you integrate the microsoft graph api email endpoint into your product.<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <span class=\"mgfaq-cta-btn\" onclick=\"if(window.$crisp){$crisp.push(['do','chat:open'])}\"><span>Talk to an expert<\/span><svg viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><polyline points=\"12 5 19 12 12 19\"\/><\/svg><\/span><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><script type=\"application\/ld+json\"><!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->  \"@context\": \"https:\/\/schema.org\",<!-- [et_pb_line_break_holder] -->  \"@type\": \"FAQPage\",<!-- [et_pb_line_break_holder] -->  \"mainEntity\": [<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What is Microsoft Graph API for email?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"The Microsoft Graph API for email is the official REST endpoint provided by Microsoft for accessing Outlook and Exchange mailbox data. It lives at https:\/\/graph.microsoft.com\/v1.0\/me\/messages and uses OAuth 2.0 authentication via Azure Active Directory. It supports reading, sending, searching, and managing emails, as well as receiving real-time change notifications via webhook subscriptions.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How does OAuth 2.0 work with Microsoft Graph?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Microsoft Graph uses Azure Active Directory (Entra ID) for authentication. You register an application in the Azure portal, configure the required Graph API permissions (like Mail.Read and Mail.Send), and use the Microsoft Authentication Library (MSAL) to acquire access tokens. There are two main flows: delegated (user signs in interactively) and application (server-to-server, no user interaction). Tokens expire after 1 hour and must be refreshed automatically.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Does Microsoft Graph API support IMAP?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Microsoft Graph API does not use IMAP internally - it is a REST API that abstracts the underlying mail protocol. For Outlook email integration, Microsoft strongly recommends using Graph API over IMAP because it offers more features, better performance, and full webhook support.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What are the rate limits for Microsoft Graph email API?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Microsoft Graph enforces throttling at multiple levels. The general limit is 10,000 requests per 10 minutes per application. Per-user limits can be lower depending on the operation type. When throttled, the API returns HTTP 429 with a Retry-After header.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"How do I set up webhooks with Microsoft Graph API?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"POST to \/v1.0\/subscriptions with a changeType (e.g., 'created'), a notificationUrl pointing to your HTTPS endpoint, and a resource (e.g., 'me\/mailFolders(Inbox)\/messages'). Microsoft immediately sends a GET request with a validationToken your server must echo back within 10 seconds. Subscriptions expire after 4230 minutes and must be renewed via PATCH.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"Can I send emails on behalf of a user with Microsoft Graph?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Yes. With delegated permissions (Mail.Send), you can send email on behalf of the signed-in user. With application permissions (Mail.Send), you can send on behalf of any user in the tenant without them being signed in - useful for automated notifications or CRM integrations.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->      \"@type\": \"Question\",<!-- [et_pb_line_break_holder] -->      \"name\": \"What is the difference between Microsoft Graph API and EWS?\",<!-- [et_pb_line_break_holder] -->      \"acceptedAnswer\": {<!-- [et_pb_line_break_holder] -->        \"@type\": \"Answer\",<!-- [et_pb_line_break_holder] -->        \"text\": \"Exchange Web Services (EWS) is a SOAP-based API built for on-premises Exchange. Microsoft Graph API is the modern REST replacement and is the only recommended approach for new integrations. EWS is in maintenance mode with no new features being added, and Microsoft has announced plans to retire it for Exchange Online.\"<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  ]<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><script>(function(){function init(){var list=document.getElementById('mgfaq-list');if(!list)return;list.querySelectorAll('.mgfaq-item').forEach(function(item){var header=item.querySelector('.mgfaq-header');var body=item.querySelector('.mgfaq-body');if(!header||!body)return;header.addEventListener('click',function(){var isActive=item.classList.contains('active');list.querySelectorAll('.mgfaq-item').forEach(function(i){i.classList.remove('active');i.querySelector('.mgfaq-body').classList.remove('open');});if(!isActive){item.classList.add('active');body.classList.add('open');}});});}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',init);}else{init();}})()<\/script><!-- [et_pb_line_break_holder] --><\/body><\/html>[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Microsoft Graph API Microsoft Graph API Email: Complete Integration Guide for Developers (2026) 18 min read 17 Apr 2026 Python \/ Node.js \/ REST The Microsoft Graph API is the unified REST endpoint for accessing Outlook and Exchange email data: read, send, search, and receive webhooks for every mailbox event. This guide walks you through [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[37],"tags":[],"post_folder":[],"class_list":["post-278253","post","type-post","status-publish","format-standard","hentry","category-cat-guides"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Microsoft Graph API Email: Send, Read and Sync (2026 Guide) - Unipile<\/title>\n<meta name=\"description\" content=\"Learn to use the Microsoft Graph API for email: send, read, and sync Outlook messages. OAuth 2.0 setup, Python &amp; Node.js code examples. SOC 2 compliant.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.unipile.com\/br\/guia-de-integracao-de-e-mail-da-api-do-microsoft-graph\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft Graph API Email: Send, Read and Sync (2026 Guide) - Unipile\" \/>\n<meta property=\"og:description\" content=\"Learn to use the Microsoft Graph API for email: send, read, and sync Outlook messages. OAuth 2.0 setup, Python &amp; Node.js code examples. SOC 2 compliant.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.unipile.com\/br\/guia-de-integracao-de-e-mail-da-api-do-microsoft-graph\/\" \/>\n<meta property=\"og:site_name\" content=\"Unipile\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/unipilefr\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-17T11:43:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-27T09:57:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg\" \/>\n<meta name=\"author\" content=\"Damien Girardeau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:site\" content=\"@UnipileAPI\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Damien Girardeau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/\"},\"author\":{\"name\":\"Damien Girardeau\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\"},\"headline\":\"Microsoft Graph API Email: Send, Read and Sync (2026 Guide)\",\"datePublished\":\"2026-04-17T11:43:26+00:00\",\"dateModified\":\"2026-04-27T09:57:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/\"},\"wordCount\":4932,\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/outlook-2.svg\",\"articleSection\":[\"Guides\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/\",\"name\":\"Microsoft Graph API Email: Send, Read and Sync (2026 Guide) - Unipile\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/outlook-2.svg\",\"datePublished\":\"2026-04-17T11:43:26+00:00\",\"dateModified\":\"2026-04-27T09:57:15+00:00\",\"description\":\"Learn to use the Microsoft Graph API for email: send, read, and sync Outlook messages. OAuth 2.0 setup, Python & Node.js code examples. SOC 2 compliant.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/outlook-2.svg\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/outlook-2.svg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/microsoft-graph-api-email-integration-guide\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.unipile.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Microsoft Graph API Email: Send, Read and Sync (2026 Guide)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#website\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"name\":\"Unipile\",\"description\":\"Integrate Messaging &amp; Email, Connect with Ease via API\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.unipile.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#organization\",\"name\":\"Unipile\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"contentUrl\":\"https:\\\/\\\/www.unipile.com\\\/wp-content\\\/uploads\\\/2021\\\/05\\\/logo-unipile.png\",\"width\":200,\"height\":49,\"caption\":\"Unipile\"},\"image\":{\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/unipilefr\",\"https:\\\/\\\/x.com\\\/UnipileAPI\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/unipile\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.unipile.com\\\/#\\\/schema\\\/person\\\/a2ac44e22bdc27d497ce8b58716a673e\",\"name\":\"Damien Girardeau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g\",\"caption\":\"Damien Girardeau\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microsoft Graph API E-mail: Enviar, Ler e Sincronizar (Guia 2026) - Unipile","description":"Aprenda a usar a API Microsoft Graph para e-mail: enviar, ler e sincronizar mensagens do Outlook. Configura\u00e7\u00e3o do OAuth 2.0, exemplos de c\u00f3digo Python e Node.js. Em conformidade com SOC 2.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.unipile.com\/br\/guia-de-integracao-de-e-mail-da-api-do-microsoft-graph\/","og_locale":"pt_BR","og_type":"article","og_title":"Microsoft Graph API Email: Send, Read and Sync (2026 Guide) - Unipile","og_description":"Learn to use the Microsoft Graph API for email: send, read, and sync Outlook messages. OAuth 2.0 setup, Python & Node.js code examples. SOC 2 compliant.","og_url":"https:\/\/www.unipile.com\/br\/guia-de-integracao-de-e-mail-da-api-do-microsoft-graph\/","og_site_name":"Unipile","article_publisher":"https:\/\/www.facebook.com\/unipilefr","article_published_time":"2026-04-17T11:43:26+00:00","article_modified_time":"2026-04-27T09:57:15+00:00","og_image":[{"url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg","type":"","width":"","height":""}],"author":"Damien Girardeau","twitter_card":"summary_large_image","twitter_creator":"@UnipileAPI","twitter_site":"@UnipileAPI","twitter_misc":{"Escrito por":"Damien Girardeau","Est. tempo de leitura":"18 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#article","isPartOf":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/"},"author":{"name":"Damien Girardeau","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e"},"headline":"Microsoft Graph API Email: Send, Read and Sync (2026 Guide)","datePublished":"2026-04-17T11:43:26+00:00","dateModified":"2026-04-27T09:57:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/"},"wordCount":4932,"publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"image":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg","articleSection":["Guides"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/","url":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/","name":"Microsoft Graph API E-mail: Enviar, Ler e Sincronizar (Guia 2026) - Unipile","isPartOf":{"@id":"https:\/\/www.unipile.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg","datePublished":"2026-04-17T11:43:26+00:00","dateModified":"2026-04-27T09:57:15+00:00","description":"Aprenda a usar a API Microsoft Graph para e-mail: enviar, ler e sincronizar mensagens do Outlook. Configura\u00e7\u00e3o do OAuth 2.0, exemplos de c\u00f3digo Python e Node.js. Em conformidade com SOC 2.","breadcrumb":{"@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#primaryimage","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2024\/02\/outlook-2.svg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.unipile.com\/microsoft-graph-api-email-integration-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.unipile.com\/"},{"@type":"ListItem","position":2,"name":"Microsoft Graph API Email: Send, Read and Sync (2026 Guide)"}]},{"@type":"WebSite","@id":"https:\/\/www.unipile.com\/#website","url":"https:\/\/www.unipile.com\/","name":"Unipile","description":"Integre mensagens e e-mail, conecte-se com facilidade via API","publisher":{"@id":"https:\/\/www.unipile.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.unipile.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.unipile.com\/#organization","name":"Unipile","url":"https:\/\/www.unipile.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","contentUrl":"https:\/\/www.unipile.com\/wp-content\/uploads\/2021\/05\/logo-unipile.png","width":200,"height":49,"caption":"Unipile"},"image":{"@id":"https:\/\/www.unipile.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/unipilefr","https:\/\/x.com\/UnipileAPI","https:\/\/www.linkedin.com\/company\/unipile\/"]},{"@type":"Person","@id":"https:\/\/www.unipile.com\/#\/schema\/person\/a2ac44e22bdc27d497ce8b58716a673e","name":"Damien Girardeau","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12dd140720736a8db29f540c42a17d2680cd54a04fb26bb7b55423c179b065a9?s=96&d=mm&r=g","caption":"Damien Girardeau"}}]}},"_links":{"self":[{"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/posts\/278253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/comments?post=278253"}],"version-history":[{"count":17,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/posts\/278253\/revisions"}],"predecessor-version":[{"id":278376,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/posts\/278253\/revisions\/278376"}],"wp:attachment":[{"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/media?parent=278253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/categories?post=278253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/tags?post=278253"},{"taxonomy":"post_folder","embeddable":true,"href":"https:\/\/www.unipile.com\/br\/wp-json\/wp\/v2\/post_folder?post=278253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}