Compare commits

..

No commits in common. "stage" and "dist-prod" have entirely different histories.

347 changed files with 11890 additions and 11434 deletions

View file

@ -1,65 +0,0 @@
on:
push:
branches:
- stage
- prod
jobs:
build:
runs-on: docker
steps:
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 1.3.9
- name: Checkout code
uses: actions/checkout@v4
- name: Cache bun modules
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}
restore-keys: |
${{ runner.os }}-bun-
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build Astro project
run: bun run build
- name: Deploy dist to dist-${{ env.FORGEJO_REF_NAME }}
run: |
git config --global user.name "forgejo-actions[bot]"
git config --global user.email "forgejo-actions[bot]@users.noreply.local"
git clone "https://x-access-token:${{ secrets.FORGEJO_TOKEN }}@git.workaround.org/${{ github.repository }}.git" repo
cd repo
git checkout dist-${{ env.FORGEJO_REF_NAME }} || git checkout --orphan dist-${{ env.FORGEJO_REF_NAME }}
git rm -rf .
# Copy dist files to repo directory
cp -r ../dist/* ./
git add .
git commit -m "Update dist for ${{ env.FORGEJO_REF_NAME }}"
git push origin dist-${{ env.FORGEJO_REF_NAME }} --force
- name: Trigger deployment webhook
env:
DEPLOY_WEBHOOK: ${{ secrets.COOLIFY_DEPLOY_WEBHOOK }}
DEPLOY_TOKEN: ${{ secrets.COOLIFY_DEPLOY_TOKEN }}
run: |
if [ "${{ env.FORGEJO_REF_NAME }}" = "stage" ]; then
DEPLOY_WEBHOOK="${{ secrets.COOLIFY_DEPLOY_WEBHOOK_STAGE }}"
DEPLOY_TOKEN="${{ secrets.COOLIFY_DEPLOY_TOKEN_STAGE }}"
else
DEPLOY_WEBHOOK="${{ secrets.COOLIFY_DEPLOY_WEBHOOK_PROD }}"
DEPLOY_TOKEN="${{ secrets.COOLIFY_DEPLOY_TOKEN_PROD }}"
fi
curl -v "$DEPLOY_WEBHOOK" \
--header "Authorization: Bearer $DEPLOY_TOKEN"

22
.gitignore vendored
View file

@ -1,22 +0,0 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
drawio/.$big-picture.drawio.bkp

View file

@ -1,6 +0,0 @@
{
"tabWidth": 2,
"useTabs": false,
"printWidth": 120,
"proseWrap": "always"
}

View file

@ -1,4 +0,0 @@
{
"recommendations": ["astro-build.astro-vscode"],
"unwantedRecommendations": []
}

11
.vscode/launch.json vendored
View file

@ -1,11 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
"command": "./node_modules/.bin/astro dev",
"name": "Development server",
"request": "launch",
"type": "node-terminal"
}
]
}

View file

@ -1,9 +0,0 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[astro]": {
"editor.defaultFormatter": "astro-build.astro-vscode"
}
}

48
404.html Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,30 +0,0 @@
# ISPmail guide
This repository contains the ISPmail guide as found on workaround.org.
The web site is built the static site generator [Starlight](https://starlight.astro.build) which creates beautiful
documentation with table of contents, a search function and customizable widgets.
The illustrations were created using DrawIO. The flip-book-style diagrams on the _big picture_ page were created using:
- https://github.com/pascal-brand38/astro-splide
- https://pascal-brand38.github.io/astro-dev/packages/astro-splide/
- https://splidejs.com/guides/options/
## Contributing
Feel free to clone this repository (the _prod_ branch) and make changes. You will need NodeJS to create the HTML from
the sources:
```sh
apt install nodejs
npm i
npm run dev
```
Merge requests are always welcome. Typo fixes and rephrasing are always welcome because I am not a native english
speaker. If you want to contribute or change larger sections please talk to me first.
Or just create an _issue_ here on Github so that I know what needs fixing.
…[Christoph](mailto:ispmail@christoph-haas.de)

View file

@ -0,0 +1 @@
.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;contain:strict;display:inline-block;height:20px;inset:0;margin:auto;position:absolute;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports (outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports (outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;inset:0 .5em 0 auto;padding:1em 0}

1
_astro/Code.B0hh-7HH.css Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
import{S as r}from"./TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js";class c extends r{set current(e){super.current=e;const t=this.querySelector(".display-current");t&&(t.textContent=e.textContent)}constructor(){super();const e=this.querySelector("details");if(!e)return;const t=()=>{e.open=!1};e.querySelectorAll("a").forEach(s=>{s.addEventListener("click",t)}),window.addEventListener("click",s=>{e.contains(s.target)||t()}),window.addEventListener("keydown",s=>{if(s.key==="Escape"&&e.open){const o=e.contains(document.activeElement);if(t(),o){const n=e.querySelector("summary");n&&n.focus()}}})}}customElements.define("mobile-starlight-toc",c);

View file

@ -0,0 +1 @@
const y=(function(){const r=typeof document<"u"&&document.createElement("link").relList;return r&&r.supports&&r.supports("modulepreload")?"modulepreload":"preload"})(),S=function(m){return"/"+m},g={},w=function(r,c,d){let p=Promise.resolve();if(c&&c.length>0){let f=function(n){return Promise.all(n.map(i=>Promise.resolve(i).then(s=>({status:"fulfilled",value:s}),s=>({status:"rejected",reason:s}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),t=o?.nonce||o?.getAttribute("nonce");p=f(c.map(n=>{if(n=S(n),n in g)return;g[n]=!0;const i=n.endsWith(".css"),s=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${s}`))return;const e=document.createElement("link");if(e.rel=i?"stylesheet":y,i||(e.as="script"),e.crossOrigin="",e.href=n,t&&e.setAttribute("nonce",t),document.head.appendChild(e),i)return new Promise((l,a)=>{e.addEventListener("load",l),e.addEventListener("error",()=>a(new Error(`Unable to preload CSS for ${n}`)))})}))}function u(o){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=o,window.dispatchEvent(t),!t.defaultPrevented)throw o}return p.then(o=>{for(const t of o||[])t.status==="rejected"&&u(t.reason);return r().catch(u)})},E={ranking:{pageLength:.1,termFrequency:.1,termSaturation:2,termSimilarity:9,diacriticSimilarity:.8}};class v extends HTMLElement{constructor(){super();const r=this.querySelector("button[data-open-modal]"),c=this.querySelector("button[data-close-modal]"),d=this.querySelector("dialog"),p=this.querySelector(".dialog-frame"),u=e=>{("href"in(e.target||{})||document.body.contains(e.target)&&!p.contains(e.target))&&t()},o=e=>{d.showModal(),document.body.toggleAttribute("data-search-modal-open",!0),this.querySelector("input")?.focus(),e?.stopPropagation(),window.addEventListener("click",u)},t=()=>d.close();r.addEventListener("click",o),r.disabled=!1,c.addEventListener("click",t),d.addEventListener("close",()=>{document.body.toggleAttribute("data-search-modal-open",!1),window.removeEventListener("click",u)}),window.addEventListener("keydown",e=>{(e.metaKey===!0||e.ctrlKey===!0)&&e.key==="k"&&(d.open?t():o(),e.preventDefault())});let f={};try{f=JSON.parse(this.dataset.translations||"{}")}catch{}const s=this.dataset.stripTrailingSlash!==void 0?e=>e.replace(/(.)\/(#.*)?$/,"$1$2"):e=>e;window.addEventListener("DOMContentLoaded",()=>{(window.requestIdleCallback||(l=>setTimeout(l,1)))(async()=>{const{PagefindUI:l}=await w(async()=>{const{PagefindUI:a}=await import("./ui-core.C8327L_n.js");return{PagefindUI:a}},[]);new l({...E,element:"#starlight__search",baseUrl:"/",bundlePath:"/".replace(/\/$/,"")+"/pagefind/",showImages:!1,translations:f,showSubResults:!0,processResult:a=>{a.url=s(a.url),a.sub_results=a.sub_results.map(h=>(h.url=s(h.url),h))}})})})}}customElements.define("site-search",v);export{w as _};

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
const m="_top";class H extends HTMLElement{constructor(){super(),this._current=this.querySelector('a[aria-current="true"]'),this.minH=parseInt(this.dataset.minH||"2",10),this.maxH=parseInt(this.dataset.maxH||"3",10),this.tocHeadingSelector=`h1#${m},:where(${[...Array.from({length:1+this.maxH-this.minH}).map((e,n)=>`h${this.minH+n}`)].join()})[id]`,this.onIdle=e=>(window.requestIdleCallback||(n=>setTimeout(n,1)))(e),this.init=()=>{const e=[...this.querySelectorAll("a")],n=t=>t.matches(this.tocHeadingSelector),i=t=>{if(!t)return null;const h=t;for(;t;){if(t.matches(".sl-markdown-content, main > *"))return document.getElementById(m);if(n(t))return t;const s=t.querySelector(this.tocHeadingSelector);if(s)return s;for(t=t.previousElementSibling;t?.lastElementChild;)t=t.lastElementChild;const o=i(t);if(o)return o}return i(h.parentElement)},c=t=>{for(const{isIntersecting:h,target:s}of t){if(!h)continue;const o=i(s);if(!o)continue;const l=e.find(g=>g.hash==="#"+encodeURIComponent(o.id));if(l){this.current=l;break}}},a=document.querySelectorAll([`main :where(${this.tocHeadingSelector})`,`main :where(${this.tocHeadingSelector}, .sl-heading-wrapper) ~ *:not(:has(${this.tocHeadingSelector}))`,`main .sl-markdown-content > *:not(:has(${this.tocHeadingSelector}))`,`main > *:not(:has(${this.tocHeadingSelector}))`].join());let r;const u=()=>{r||(r=new IntersectionObserver(c,{rootMargin:this.getRootMargin()}),a.forEach(t=>r.observe(t)))};u();let d;window.addEventListener("resize",()=>{r&&(r.disconnect(),r=void 0),clearTimeout(d),d=setTimeout(()=>this.onIdle(u),200)})},this.onIdle(()=>this.init())}set current(e){e!==this._current&&(this._current&&this._current.removeAttribute("aria-current"),e.setAttribute("aria-current","true"),this._current=e)}getRootMargin(){const e=document.querySelector("header")?.getBoundingClientRect().height||0,n=this.querySelector("summary")?.getBoundingClientRect().height||0,i=e+n+32,c=i+53,a=document.documentElement.clientHeight;return`-${i}px 0% ${c-a}px`}}customElements.define("starlight-toc",H);export{H as S};

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

3
_astro/ec.0vx5m.js Normal file
View file

@ -0,0 +1,3 @@
try{(()=>{function a(e){if(!e)return;let t=e.getAttribute("tabindex")!==null,r=e.scrollWidth>e.clientWidth;r&&!t?(e.setAttribute("tabindex","0"),e.setAttribute("role","region")):!r&&t&&(e.removeAttribute("tabindex"),e.removeAttribute("role"))}var u=window.requestIdleCallback||(e=>setTimeout(e,1)),s=window.cancelIdleCallback||clearTimeout;function l(e){let t=new Set,r,n;return new ResizeObserver(c=>{c.forEach(o=>t.add(o.target)),r&&clearTimeout(r),n&&s(n),r=setTimeout(()=>{n&&s(n),n=u(()=>{t.forEach(o=>e(o)),t.clear()})},250)})}function i(e,t){e.querySelectorAll?.(".expressive-code pre > code").forEach(r=>{let n=r.parentElement;n&&t.observe(n)})}var d=l(a);i(document,d);var b=new MutationObserver(e=>e.forEach(t=>t.addedNodes.forEach(r=>{i(r,d)})));b.observe(document.body,{childList:!0,subtree:!0});document.addEventListener("astro:page-load",()=>{i(document,d)});})();}catch(e){console.error("[EC] tabindex-js-module failed:",e)}
try{(()=>{function l(o){let e=document.createElement("pre");Object.assign(e.style,{opacity:"0",pointerEvents:"none",position:"absolute",overflow:"hidden",left:"0",top:"0",width:"20px",height:"20px",webkitUserSelect:"auto",userSelect:"all"}),e.ariaHidden="true",e.textContent=o,document.body.appendChild(e);let a=document.createRange();a.selectNode(e);let n=getSelection();if(!n)return!1;n.removeAllRanges(),n.addRange(a);let r=!1;try{r=document.execCommand("copy")}finally{n.removeAllRanges(),document.body.removeChild(e)}return r}async function u(o){let e=o.currentTarget,a=e.dataset,n=!1,r=a.code.replace(/\u007f/g,`
`);try{await navigator.clipboard.writeText(r),n=!0}catch{n=l(r)}if(!n||e.parentNode?.querySelector(".feedback"))return;let c=e.parentNode?.querySelector("[aria-live]"),t=document.createElement("div");t.classList.add("feedback"),t.append(a.copied),c.append(t),t.offsetWidth,requestAnimationFrame(()=>t?.classList.add("show"));let s=()=>!t||t.classList.remove("show"),d=()=>{!t||parseFloat(getComputedStyle(t).opacity)>0||(t.remove(),t=void 0)};setTimeout(s,1500),setTimeout(d,2500),e.addEventListener("blur",s),t.addEventListener("transitioncancel",d),t.addEventListener("transitionend",d)}function i(o){o.querySelectorAll?.(".expressive-code .copy button").forEach(e=>e.addEventListener("click",u))}i(document);var m=new MutationObserver(o=>o.forEach(e=>e.addedNodes.forEach(a=>{i(a)})));m.observe(document.body,{childList:!0,subtree:!0});document.addEventListener("astro:page-load",()=>{i(document)});})();}catch(e){console.error("[EC] copy-js-module failed:",e)}

1
_astro/ec.v4551.css Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View file

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View file

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

1
_astro/page.B_tncCx8.js Normal file
View file

@ -0,0 +1 @@
const v={},d=new Set,s=new WeakSet;let f=!0,h,l=!1;function g(e){l||(l=!0,f??=!1,h??="hover",p(),w(),y(),S())}function p(){for(const e of["touchstart","mousedown"])document.addEventListener(e,t=>{const n=t.target.closest("a");i(n,"tap")&&c(n.href,{ignoreSlowConnection:!0})},{passive:!0})}function w(){let e;document.body.addEventListener("focusin",o=>{const r=o.target.closest("a");i(r,"hover")&&t(r.href)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),u(()=>{for(const o of document.getElementsByTagName("a"))s.has(o)||i(o,"hover")&&(s.add(o),o.addEventListener("mouseenter",r=>t(r.currentTarget.href),{passive:!0}),o.addEventListener("mouseleave",n,{passive:!0}))});function t(o){e&&clearTimeout(e),e=setTimeout(()=>{c(o)},80)}function n(){e&&(clearTimeout(e),e=0)}}function y(){let e;u(()=>{for(const t of document.getElementsByTagName("a"))s.has(t)||i(t,"viewport")&&(s.add(t),e??=L(),e.observe(t))})}function L(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,a=e.get(r);o.isIntersecting?(a&&clearTimeout(a),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),c(r.href)},300))):a&&(clearTimeout(a),e.delete(r))}})}function S(){u(()=>{for(const e of document.getElementsByTagName("a"))i(e,"load")&&c(e.href)})}function c(e,t){e=e.replace(/#.*/,"");const n=t?.ignoreSlowConnection??!1;if(T(e,n))if(d.add(e),document.createElement("link").relList?.supports?.("prefetch")){const o=document.createElement("link");o.rel="prefetch",o.setAttribute("href",e),document.head.append(o)}else{const o=new Headers;for(const[r,a]of Object.entries(v))o.set(r,a);fetch(e,{priority:"low",headers:o})}}function T(e,t){if(!navigator.onLine||!t&&m())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!d.has(e)}catch{}return!1}function i(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||f)&&m()?!0:n==null&&f||n===""?t===h:n===t}function m(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function u(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}g();

Binary file not shown.

After

Width:  |  Height:  |  Size: 7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

View file

@ -0,0 +1 @@
@media print{:root{--sl-color-white: hsl(224, 10%, 10%);--sl-color-gray-1: hsl(224, 14%, 16%);--sl-color-gray-2: hsl(224, 10%, 23%);--sl-color-gray-3: hsl(224, 7%, 36%);--sl-color-gray-4: hsl(224, 6%, 56%);--sl-color-gray-5: hsl(224, 6%, 77%);--sl-color-gray-6: hsl(224, 20%, 94%);--sl-color-gray-7: hsl(224, 19%, 97%);--sl-color-black: hsl(0, 0%, 100%);--sl-color-orange-high: hsl(var(--sl-hue-orange), 80%, 25%);--sl-color-orange: hsl(var(--sl-hue-orange), 90%, 60%);--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);--sl-color-green-high: hsl(var(--sl-hue-green), 80%, 22%);--sl-color-green: hsl(var(--sl-hue-green), 90%, 46%);--sl-color-green-low: hsl(var(--sl-hue-green), 85%, 90%);--sl-color-blue-high: hsl(var(--sl-hue-blue), 80%, 30%);--sl-color-blue: hsl(var(--sl-hue-blue), 90%, 60%);--sl-color-blue-low: hsl(var(--sl-hue-blue), 88%, 90%);--sl-color-purple-high: hsl(var(--sl-hue-purple), 90%, 30%);--sl-color-purple: hsl(var(--sl-hue-purple), 90%, 60%);--sl-color-purple-low: hsl(var(--sl-hue-purple), 80%, 90%);--sl-color-red-high: hsl(var(--sl-hue-red), 80%, 30%);--sl-color-red: hsl(var(--sl-hue-red), 90%, 60%);--sl-color-red-low: hsl(var(--sl-hue-red), 80%, 90%);--sl-color-accent-high: hsl(234, 80%, 30%);--sl-color-accent: hsl(234, 90%, 60%);--sl-color-accent-low: hsl(234, 88%, 90%);--sl-color-text-accent: var(--sl-color-accent);--sl-color-text-invert: var(--sl-color-black);--sl-color-bg-nav: var(--sl-color-gray-7);--sl-color-bg-sidebar: var(--sl-color-bg);--sl-color-bg-inline-code: var(--sl-color-gray-6);--sl-color-bg-accent: var(--sl-color-accent);--sl-color-hairline-light: var(--sl-color-gray-6);--sl-color-hairline-shade: var(--sl-color-gray-6);--sl-color-backdrop-overlay: hsla(225, 9%, 36%, .66);--sl-shadow-sm: none;--sl-shadow-md: none;--sl-shadow-lg: none}.print\:hidden{display:none}.print\:flex{display:flex}.print\:block{display:block}main{padding-bottom:0}main>.content-panel{padding-block-start:0}.content-panel+.content-panel{border:0}.page>header{position:relative}.page>.main-frame{padding-top:0;padding-inline-start:0}.main-pane{--sl-sidebar-width: 0px;--sl-content-width: 100%}.sl-banner{--sl-color-banner-text: var(--sl-color-white);background-color:transparent}.sl-markdown-content :is(h1,h2,h3,h4,h5,h6){break-after:avoid}.sl-markdown-content :is(p,li){orphans:2;widows:2}.sl-markdown-content pre{overflow-x:hidden;white-space:pre-wrap}.sl-markdown-content .expressive-code,.sl-markdown-content figure,.sl-markdown-content pre{break-inside:avoid}.expressive-code .frame.is-terminal .header:before{box-shadow:inset 99rem 99rem var(--sl-color-gray-5)}.expressive-code .frame.has-title:not(.is-terminal) .header{background:transparent;border-bottom:1px solid var(--sl-color-gray-6)}.expressive-code .frame.has-title:not(.is-terminal) .title{background:transparent}.expressive-code .frame.has-title:not(.is-terminal) .title:after{border-top:0}.expressive-code .copy{display:none}.sl-markdown-content code:not(:where(.not-content *)){background-color:transparent;padding:0;margin-block:unset;font-size:.9375em}.sl-badge{background:transparent;color:var(--sl-color-white)}starlight-file-tree{break-inside:avoid}starlight-file-tree .highlight{outline:3px solid var(--sl-color-accent-low);color:var(--sl-color-text);background-color:transparent}.starlight-aside{break-inside:avoid}.sl-link-button.primary{background:transparent;border-color:var(--sl-color-white);color:var(--sl-color-white)}starlight-tabs{break-inside:avoid}.sl-steps>li:after{box-shadow:inset 99rem 99rem var(--sl-color-hairline-light)}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

View file

@ -1,87 +0,0 @@
// @ts-check
import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";
import sitemap from "@astrojs/sitemap";
import remarkSmartypants from "remark-smartypants";
import { unified } from "@astrojs/markdown-remark";
// https://astro.build/config
export default defineConfig({
site: "https://workaround.org",
redirects: {
"/ispmail-trxie/imap/": "/ispmail-trixie/imap/",
"/ispmail-trxie/anti-spoofing-dkim-spf": "/ispmail-trixie/anti-spoofing-dkim-spf",
"/ispmail-trxie/catch-all": "/ispmail-trixie/catch-all",
"/ispmail-trxie/quotas": "/ispmail-trixie/quotas",
"/ispmail-trxie/going-live": "/ispmail-trixie/going-live",
},
integrations: [
starlight({
head: [
{
tag: "script",
attrs: {
src: "https://rybbit.workaround.org/api/script.js",
"data-site-id": "1",
async: true,
defer: true,
},
},
],
expressiveCode: {
frames: {
removeCommentsWhenCopyingTerminalFrames: false, // keep the commented lines when copying shell snippets
},
},
lastUpdated: true,
title: "ISPmail Guide",
social: [
{ icon: "seti:git", label: "Git", href: "https://git.workaround.org/chaas/ispmail-workaround-org" },
{ icon: "matrix", label: "Matrix", href: "https://riot.im/app/#/room/#ispmail:matrix.org" },
{
icon: "rss",
label: "Feed",
href: "https://comentario.workaround.org/api/rss/comments?domain=0352e59b-fd9e-4627-af50-3e4125181cfc",
},
],
// https://expressive-code.com/key-features/word-wrap/#configuration
components: {
Footer: "./src/components/Footer.astro",
Banner: "./src/components/Banner.astro",
},
customCss: ["./src/styles/custom.css"],
sidebar: [
{
label: "ISPmail for Debian 13",
// slug: "ispmail-trixie",
items: [{ autogenerate: { directory: "ispmail-trixie" } }],
},
{
label: "ISPmail for Debian 12",
// slug: "ispmail-bookworm",
items: [{ autogenerate: { directory: "ispmail-bookworm" } }],
},
{
label: "Misc articles",
items: [{ autogenerate: { directory: "articles" } }],
},
],
logo: {
light: "./src/assets/logo.svg",
dark: "./src/assets/logo-dark.svg",
replacesTitle: true,
},
}),
sitemap(),
],
markdown: {
processor: unified({
remarkPlugins: [
// remove the substitution of -- to
// @ts-ignore
[remarkSmartypants, { dashes: false }],
],
}),
},
});

File diff suppressed because one or more lines are too long

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before After
Before After

1036
bun.lock

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -1,565 +0,0 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.5 Chrome/138.0.7204.251 Electron/37.6.1 Safari/537.36" version="28.2.5">
<diagram name="Seite-1" id="KTvmaRo9VcoZ5VeuPiA4">
<mxGraphModel dx="2466" dy="1200" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0" adaptiveColors="simple">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="gQG6ldMYRfHswNwDJcwK-4" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="120" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-9" value="&lt;font style=&quot;&quot;&gt;Other&lt;/font&gt;&lt;div&gt;&lt;font style=&quot;&quot;&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fontSize=16;fontStyle=0;fillColor=#dae8fc;fontColor=#000000;strokeColor=#6c8ebf;align=center;verticalAlign=middle;fontFamily=Helvetica;" parent="1" vertex="1">
<mxGeometry x="110" y="150" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-17" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="640" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-24" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;fillColor=#dae8fc;fontStyle=0;" parent="1" source="gQG6ldMYRfHswNwDJcwK-65" target="gQG6ldMYRfHswNwDJcwK-22" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-22" value="Name server&lt;div&gt;(DNS)&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontColor=#000000;align=center;verticalAlign=middle;fontFamily=Helvetica;fontStyle=0;labelBackgroundColor=none;" parent="1" vertex="1">
<mxGeometry x="370" y="670" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-29" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="1160" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-34" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="1680" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-40" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="2200" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-45" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="2720" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-46" value="SMTP&lt;div&gt;(TCP port 25)&lt;/div&gt;" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" target="gQG6ldMYRfHswNwDJcwK-50" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="2790" as="sourcePoint" />
<mxPoint x="370" y="2770" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-50" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="190" y="2930" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-51" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="3240" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-56" value="07" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-120" y="3470" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-57" value="06" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-130" y="2930" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-58" value="05" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-130" y="2370" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-59" value="04" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-130" y="1890" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-60" value="03" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-140" y="1350" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-61" value="02" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-140" y="850" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-62" value="01" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-110" y="300" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-64" value="&lt;span style=&quot;font-size: 16px;&quot;&gt;I would like to send an email to john@example.com&lt;/span&gt;" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.cloud_callout;fontFamily=Helvetica;fontSize=11;labelBackgroundColor=none;flipV=1;fillColor=#f5f5f5;strokeColor=#666666;spacingLeft=20;spacingTop=20;spacingRight=20;fontStyle=0;fillStyle=auto;shadow=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="220" y="180" width="230" height="130" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-65" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;align=center;verticalAlign=middle;fontFamily=Helvetica;labelBackgroundColor=none;" parent="1" vertex="1">
<mxGeometry x="110" y="670" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-28" value="What is the MX record for the domain example.com?" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="200" y="710" width="140" height="110" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-66" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-67" target="gQG6ldMYRfHswNwDJcwK-68" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-120" y="1110" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-67" value="Name server&lt;div&gt;(DNS)&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="370" y="1190" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-68" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="110" y="1190" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-33" value="smtp01.example.net" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="270" y="1230" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-69" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-71" target="gQG6ldMYRfHswNwDJcwK-70" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-70" value="Name server&lt;div&gt;(DNS)&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="370" y="1710" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-71" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="110" y="1710" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-39" value="What are the A and AAAAA records for smtp01.example.net?" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="200" y="1750" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-72" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-73" target="gQG6ldMYRfHswNwDJcwK-74" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-120" y="2150" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-73" value="Name server&lt;div&gt;(DNS)&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="370" y="2230" width="140" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-74" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="110" y="2230" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-44" value="A: 100.17.195.84&lt;div&gt;AAAA: 2001:876:18:5::ce&lt;/div&gt;" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="290" y="2270" width="200" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-75" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="2750" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-76" value="220 smtp01.example.net&lt;div&gt;ESMTP Postfix&lt;/div&gt;" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-77" target="gQG6ldMYRfHswNwDJcwK-78" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="3310" as="sourcePoint" />
<mxPoint x="690" y="3290" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-77" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="190" y="3450" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-78" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="3270" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-55" value="Nice to see you." style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="300" y="3410" width="150" height="60" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-79" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="3760" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-80" value="EHLO remoteserver" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" target="gQG6ldMYRfHswNwDJcwK-81" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="3830" as="sourcePoint" />
<mxPoint x="370" y="3810" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-81" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="190" y="3970" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-82" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="3790" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-83" value="08" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-70" y="3970" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-84" value="Hi, my name is &quot;remoteserver&quot;" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="240" y="3800" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-85" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="4280" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-86" value="&lt;div&gt;250-smtp01.example.com&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;250-SIZE 40000000&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: light-dark(#ffffff, var(--ge-dark-color, #121212)); color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;250-STARTTLS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;250-ENHANCEDSTATUSCODES&lt;/div&gt;&lt;div&gt;250-8BITMIME&lt;/div&gt;" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-87" target="gQG6ldMYRfHswNwDJcwK-88" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="192.85714285714312" y="4390" as="sourcePoint" />
<mxPoint x="216.1111111111113" y="4400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-87" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="220" y="4560" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-88" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="4310" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-89" value="These are the features that I support." style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="330" y="4510" width="180" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-90" value="09" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-80" y="4480" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-91" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="4800" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-92" value="STARTTLS" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" target="gQG6ldMYRfHswNwDJcwK-93" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="4870" as="sourcePoint" />
<mxPoint x="370" y="4850" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-93" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="5090" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-94" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="4830" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-95" value="Let us switch to encrypted communication" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="230" y="4850" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-96" value="10" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-50" y="4970" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-97" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="5320" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-98" value="MAIL FROM: &amp;lt;someone@else.com&amp;gt;" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" target="gQG6ldMYRfHswNwDJcwK-99" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="5390" as="sourcePoint" />
<mxPoint x="370" y="5370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-99" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="5610" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-100" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="5350" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-101" value="I have an email from someone@else.com" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="230" y="5370" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-102" value="11" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-60" y="5530" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-103" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="5430" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-104" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="5840" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-105" value="Ok" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-106" target="gQG6ldMYRfHswNwDJcwK-107" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="5910" as="sourcePoint" />
<mxPoint x="-130" y="5840" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-106" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="6130" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-107" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="5870" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-109" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="5950" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-110" value="12" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-50" y="6050" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-112" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="6360" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-113" value="RCPT TO: &amp;lt;john@example.org&amp;gt;" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" target="gQG6ldMYRfHswNwDJcwK-114" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="6430" as="sourcePoint" />
<mxPoint x="370" y="6410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-114" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="6650" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-115" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="6390" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-116" value="That email is meant for john@example.org" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="230" y="6410" width="170" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-117" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="6470" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-118" value="13" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-30" y="6580" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-124" value="14" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-60" y="7080" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-125" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="6880" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-126" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-127" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="6950" as="sourcePoint" />
<mxPoint x="370" y="6930" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-132" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-127" target="gQG6ldMYRfHswNwDJcwK-131" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-127" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="7170" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-128" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="6910" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-130" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="6990" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-131" value="MariaDB&lt;div&gt;database&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="570" y="7170" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-133" value="Is example.org our domain?" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="300" y="7110" width="130" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-134" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="7400" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-135" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-137" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="7470" as="sourcePoint" />
<mxPoint x="370" y="7450" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-136" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-140" target="gQG6ldMYRfHswNwDJcwK-137" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="8020" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-137" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="7690" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-138" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="7430" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-139" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="7510" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-140" value="MariaDB&lt;div&gt;database&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="570" y="7690" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-141" value="Yes, I found it in my virtual_domains table" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="470" y="7610" width="150" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-142" value="15" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-50" y="7600" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-143" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="7920" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-144" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-146" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="7990" as="sourcePoint" />
<mxPoint x="370" y="7970" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-145" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-146" target="gQG6ldMYRfHswNwDJcwK-149" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-146" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="8210" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-147" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="7950" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-148" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="8030" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-149" value="MariaDB&lt;div&gt;database&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="570" y="8210" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-150" value="And is john@example.org a known user?" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="300" y="8130" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-151" value="16" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-30" y="8155" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-152" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="8440" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-153" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-155" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="8510" as="sourcePoint" />
<mxPoint x="370" y="8490" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-154" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-158" target="gQG6ldMYRfHswNwDJcwK-155" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="9060" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-155" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="8730" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-156" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="8470" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-157" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="8550" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-158" value="MariaDB&lt;div&gt;database&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="570" y="8730" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-159" value="Yes, I found it in my virtual_users table" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="440" y="8660" width="180" height="80" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-160" value="17" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-50" y="8640" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-161" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="8960" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-171" value="Ok" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-164" target="gQG6ldMYRfHswNwDJcwK-165" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-164" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="9250" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-165" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="8990" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-166" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="9070" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-169" value="18" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-30" y="9180" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-170" value="Looks good." style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="320" y="9200" width="130" height="60" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-172" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="9480" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-173" value="DATA" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-175" target="gQG6ldMYRfHswNwDJcwK-174" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-200" y="9510" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-174" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="9770" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-175" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="9510" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-176" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="9590" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-177" value="19" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-30" y="9700" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-179" value="Let me send you the email now" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="220" y="9540" width="140" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-180" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="10000" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-181" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-183" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="10070" as="sourcePoint" />
<mxPoint x="370" y="10050" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-182" value="TCP port 11332" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-183" target="gQG6ldMYRfHswNwDJcwK-186" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-183" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="10290" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-184" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="10030" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-185" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="10110" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-186" value="rspamd&lt;div&gt;Spam check&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="620" y="10180" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-188" value="20" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-40" y="10210" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-189" value="Do you think this email is spam?" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;flipH=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="330" y="10310" width="145" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-190" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="10520" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-191" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#CCCCCC;" parent="1" target="gQG6ldMYRfHswNwDJcwK-193" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="10590" as="sourcePoint" />
<mxPoint x="370" y="10570" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-192" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-196" target="gQG6ldMYRfHswNwDJcwK-193" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1140" y="10950" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-193" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="10810" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-194" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="10550" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-195" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="10630" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-196" value="rspamd&lt;div&gt;Spam check&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="620" y="10700" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-197" value="21" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-40" y="10730" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-199" value="A few minor issues but the email seems legit" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="520" y="10620" width="145" height="90" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-200" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="11040" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-201" value="250 2.0.0 Ok: queued as 7855B7FD86" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;strokeColor=#000000;" parent="1" source="gQG6ldMYRfHswNwDJcwK-203" target="gQG6ldMYRfHswNwDJcwK-204" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="172.85714285714312" y="11110" as="sourcePoint" />
<mxPoint x="-80" y="11370" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-203" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="11330" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-204" value="Other&lt;div&gt;mail&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;server&lt;/span&gt;&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="120" y="11070" width="130" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-205" value="" style="sketch=0;aspect=fixed;pointerEvents=1;shadow=0;dashed=0;html=1;strokeColor=#C73500;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;align=center;fillColor=#fa6800;shape=mxgraph.mscae.enterprise.lock;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="160" y="11150" width="30" height="38.46" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-208" value="22" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-20" y="11250" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-209" value="Thanks. I will deliver it." style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;flipH=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="320" y="11360" width="130" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-210" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="11560" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-218" value="LMTP" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-212" target="gQG6ldMYRfHswNwDJcwK-217" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-212" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="11850" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-215" value="23" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-20" y="11770" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-216" value="Please save this new email for john@example.org" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=1;fillColor=#fff2cc;strokeColor=#d6b656;flipH=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="320" y="11880" width="180" height="100" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-217" value="Dovecot&lt;div&gt;IMAP server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="630" y="11700" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-223" value="24" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=11;fontColor=#000000;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="-20" y="12290" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-228" value="" style="rounded=1;whiteSpace=wrap;html=1;arcSize=5;verticalAlign=bottom;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="80" y="12080" width="800" height="500" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-229" value="" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#CCCCCC;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=16;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-230" target="gQG6ldMYRfHswNwDJcwK-233" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-230" value="Postfix&lt;div&gt;mail server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;opacity=50;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="210" y="12370" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-235" style="edgeStyle=none;shape=connector;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=default;strokeWidth=3;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="gQG6ldMYRfHswNwDJcwK-233" target="gQG6ldMYRfHswNwDJcwK-234" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-233" value="Dovecot&lt;div&gt;IMAP server&lt;/div&gt;" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=16;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="630" y="12220" width="150" height="50" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-234" value="&lt;font style=&quot;font-size: 16px;&quot;&gt;/var/vmail&lt;/font&gt;" style="fontColor=#000000;verticalAlign=top;verticalLabelPosition=bottom;labelPosition=center;align=center;html=1;outlineConnect=0;fillColor=#CCCCCC;strokeColor=#6881B3;gradientColor=none;gradientDirection=north;strokeWidth=2;shape=mxgraph.networks.storage;fontFamily=Helvetica;fontSize=11;labelBackgroundColor=default;" parent="1" vertex="1">
<mxGeometry x="670" y="12415" width="70" height="70" as="geometry" />
</mxCell>
<mxCell id="gQG6ldMYRfHswNwDJcwK-236" value="Alright. Saving to disk." style="whiteSpace=wrap;html=1;shape=mxgraph.basic.roundRectCallout;dx=30;dy=15;size=5;boundedLbl=1;fontFamily=Helvetica;fontSize=16;labelBackgroundColor=none;flipV=0;fillColor=#fff2cc;strokeColor=#d6b656;flipH=1;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="550" y="12140" width="120" height="90" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View file

@ -1,76 +0,0 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.5 Chrome/138.0.7204.251 Electron/37.6.1 Safari/537.36" version="28.2.5">
<diagram name="Seite-1" id="xoRvxYNhYbXPELqCOjKX">
<mxGraphModel dx="1425" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="EY0GxazJDWYAO9ivZ3xv-1" value="" style="shape=mxgraph.networks2.icon;aspect=fixed;fillColor=#EDEDED;strokeColor=#000000;gradientColor=#5B6163;network2IconShadow=1;network2bgFillColor=none;labelPosition=center;verticalLabelPosition=bottom;align=center;verticalAlign=top;network2Icon=mxgraph.networks2.user_male;network2IconW=0.8918;network2IconH=1.0003;" vertex="1" parent="1">
<mxGeometry x="90" y="179.99" width="44.59" height="50.015" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-2" value="Inbox" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=default;" vertex="1" parent="1">
<mxGeometry x="160" y="160" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-3" value="Junk" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="200" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-4" value="Trash" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="240" width="70" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="280" y="160" width="290" height="60" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-5" value="The blue pill for your hardest night. Buy now." style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="294" y="190" width="266" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-7" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=3;" edge="1" parent="1" source="EY0GxazJDWYAO9ivZ3xv-6" target="EY0GxazJDWYAO9ivZ3xv-3">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="90" y="380" as="sourcePoint" />
<mxPoint x="140" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-8" value="From: wienermeds@gmail.com" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="294" y="160" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-9" value="&lt;pre data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#82AAFF;--1:#3B61B0&quot;&gt;mailbox&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;Junk&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#82AAFF;--1:#3B61B0&quot;&gt;sieve_script&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;spam&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#C5E478;--1:#3B61B0&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;before&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#82AAFF;--1:#3B61B0&quot;&gt;cause&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;copy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#82AAFF;--1:#3B61B0&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#ECC48D;--1:#3B61B0&quot;&gt;&lt;b&gt;/etc/dovecot/sieve/learn-spam.sieve&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#D6DEEB;--1:#403F53&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=8;spacingTop=0;" vertex="1" parent="1">
<mxGeometry x="190" y="310" width="360" height="120" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-10" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="360" y="260" as="sourcePoint" />
<mxPoint x="360" y="310" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-11" value="&lt;pre data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECC48D;--1:#984E4D&quot;&gt;require [&quot;vnd.dovecot.pipe&quot;, &quot;copy&quot;, &quot;imapsieve&quot;];&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#ECC48D;--1:#984E4D&quot;&gt;pipe :copy &quot;&lt;b&gt;rspamd-learn-spam.sh&lt;/b&gt;&quot;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=8;spacingTop=0;" vertex="1" parent="1">
<mxGeometry x="180" y="480" width="380" height="50" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-12" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="360" y="430" as="sourcePoint" />
<mxPoint x="360" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-13" value="&lt;pre data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d6deeb;--1:#403f53&quot;&gt;#!/bin/sh&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#d6deeb;--1:#403f53&quot;&gt;exec /usr/bin/rspamc learn_spam&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacingLeft=8;spacingTop=0;" vertex="1" parent="1">
<mxGeometry x="240" y="580" width="242" height="50" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-14" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="360" y="530" as="sourcePoint" />
<mxPoint x="360" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-15" value="IMAP sieve" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=90;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="505" y="355" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-17" value="Text" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="420" y="400" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-19" value="Sieve" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=90;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="548.13" y="489.63" width="53.75" height="30" as="geometry" />
</mxCell>
<mxCell id="EY0GxazJDWYAO9ivZ3xv-20" value="Shell" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;rotation=90;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="470" y="590" width="53.75" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View file

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

File diff suppressed because one or more lines are too long

View file

Before

Width:  |  Height:  |  Size: 284 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Before After
Before After

150
index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

116
ispmail-bookworm/index.html Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more