Update dist for prod

This commit is contained in:
forgejo-actions[bot] 2026-08-01 23:34:25 +00:00
parent b4436bcab5
commit 4cd001bdf3
29 changed files with 21 additions and 21 deletions

View file

@ -78,4 +78,4 @@
it helps to get a better understanding of the steps involved in receiving email. We will prepare the necessary
configuration in the next chapters.</p>
<p>Use the arrows to navigate between slides:</p>
<astro-splide data-splideid="astro-splide-h6qo9erlb" data-options="{}"><div id="astro-splide-h6qo9erlb" class="splide"><div class="splide__track"><ul class="splide__list"> <li class="splide__slide" key="1"><img src="/big-picture-receive/01.svg" alt="Slide 1"/></li><li class="splide__slide" key="2"><img src="/big-picture-receive/02.svg" alt="Slide 2"/></li><li class="splide__slide" key="3"><img src="/big-picture-receive/03.svg" alt="Slide 3"/></li><li class="splide__slide" key="4"><img src="/big-picture-receive/04.svg" alt="Slide 4"/></li><li class="splide__slide" key="5"><img src="/big-picture-receive/05.svg" alt="Slide 5"/></li><li class="splide__slide" key="6"><img src="/big-picture-receive/06.svg" alt="Slide 6"/></li><li class="splide__slide" key="7"><img src="/big-picture-receive/07.svg" alt="Slide 7"/></li><li class="splide__slide" key="8"><img src="/big-picture-receive/08.svg" alt="Slide 8"/></li><li class="splide__slide" key="9"><img src="/big-picture-receive/09.svg" alt="Slide 9"/></li><li class="splide__slide" key="10"><img src="/big-picture-receive/10.svg" alt="Slide 10"/></li><li class="splide__slide" key="11"><img src="/big-picture-receive/11.svg" alt="Slide 11"/></li><li class="splide__slide" key="12"><img src="/big-picture-receive/12.svg" alt="Slide 12"/></li><li class="splide__slide" key="13"><img src="/big-picture-receive/13.svg" alt="Slide 13"/></li><li class="splide__slide" key="14"><img src="/big-picture-receive/14.svg" alt="Slide 14"/></li><li class="splide__slide" key="15"><img src="/big-picture-receive/15.svg" alt="Slide 15"/></li><li class="splide__slide" key="16"><img src="/big-picture-receive/16.svg" alt="Slide 16"/></li><li class="splide__slide" key="17"><img src="/big-picture-receive/17.svg" alt="Slide 17"/></li><li class="splide__slide" key="18"><img src="/big-picture-receive/18.svg" alt="Slide 18"/></li><li class="splide__slide" key="19"><img src="/big-picture-receive/19.svg" alt="Slide 19"/></li><li class="splide__slide" key="20"><img src="/big-picture-receive/20.svg" alt="Slide 20"/></li><li class="splide__slide" key="21"><img src="/big-picture-receive/21.svg" alt="Slide 21"/></li><li class="splide__slide" key="22"><img src="/big-picture-receive/22.svg" alt="Slide 22"/></li><li class="splide__slide" key="23"><img src="/big-picture-receive/23.svg" alt="Slide 23"/></li><li class="splide__slide" key="24"><img src="/big-picture-receive/24.svg" alt="Slide 24"/></li> </ul></div></div></astro-splide><script type="module" src="/_astro/Splide.astro_astro_type_script_index_0_lang.DkIk0FXZ.js"></script></div><footer><footer class="sl-flex astro-xhxjzfa7"><div class="meta sl-flex astro-xhxjzfa7"><p>Last updated: <time datetime="2025-11-01T00:00:00.000Z">Nov 1, 2025</time></p></div><div class="pagination-links print:hidden astro-jgq3vlii" dir="ltr"><a href="/ispmail-trixie/database/" rel="prev" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-jgq3vlii">Previous<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">Database setup</span></span></a><a href="/ispmail-trixie/dns-records/" rel="next" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-jgq3vlii">Next<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">DNS records</span></span></a></div></footer><script defer src="https://comentario.workaround.org/comentario.js"></script><comentario-comments no-fonts="true" id="comments"></comentario-comments><div class="myfooter">This guide is maintained by <a href="mailto:ispmail@christoph-haas.de">Christoph Haas</a> since 2003. All content on workaround.org can be used under the terms of the<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">Creative Commons BY-NC-SA license</a>. Penguin image based on AI art because I suck at drawing.</div></footer></div></div></main></div></div></div></div></body></html>
<astro-splide data-splideid="astro-splide-7nn4o61mx" data-options="{}"><div id="astro-splide-7nn4o61mx" class="splide"><div class="splide__track"><ul class="splide__list"> <li class="splide__slide" key="1"><img src="/big-picture-receive/01.svg" alt="Slide 1"/></li><li class="splide__slide" key="2"><img src="/big-picture-receive/02.svg" alt="Slide 2"/></li><li class="splide__slide" key="3"><img src="/big-picture-receive/03.svg" alt="Slide 3"/></li><li class="splide__slide" key="4"><img src="/big-picture-receive/04.svg" alt="Slide 4"/></li><li class="splide__slide" key="5"><img src="/big-picture-receive/05.svg" alt="Slide 5"/></li><li class="splide__slide" key="6"><img src="/big-picture-receive/06.svg" alt="Slide 6"/></li><li class="splide__slide" key="7"><img src="/big-picture-receive/07.svg" alt="Slide 7"/></li><li class="splide__slide" key="8"><img src="/big-picture-receive/08.svg" alt="Slide 8"/></li><li class="splide__slide" key="9"><img src="/big-picture-receive/09.svg" alt="Slide 9"/></li><li class="splide__slide" key="10"><img src="/big-picture-receive/10.svg" alt="Slide 10"/></li><li class="splide__slide" key="11"><img src="/big-picture-receive/11.svg" alt="Slide 11"/></li><li class="splide__slide" key="12"><img src="/big-picture-receive/12.svg" alt="Slide 12"/></li><li class="splide__slide" key="13"><img src="/big-picture-receive/13.svg" alt="Slide 13"/></li><li class="splide__slide" key="14"><img src="/big-picture-receive/14.svg" alt="Slide 14"/></li><li class="splide__slide" key="15"><img src="/big-picture-receive/15.svg" alt="Slide 15"/></li><li class="splide__slide" key="16"><img src="/big-picture-receive/16.svg" alt="Slide 16"/></li><li class="splide__slide" key="17"><img src="/big-picture-receive/17.svg" alt="Slide 17"/></li><li class="splide__slide" key="18"><img src="/big-picture-receive/18.svg" alt="Slide 18"/></li><li class="splide__slide" key="19"><img src="/big-picture-receive/19.svg" alt="Slide 19"/></li><li class="splide__slide" key="20"><img src="/big-picture-receive/20.svg" alt="Slide 20"/></li><li class="splide__slide" key="21"><img src="/big-picture-receive/21.svg" alt="Slide 21"/></li><li class="splide__slide" key="22"><img src="/big-picture-receive/22.svg" alt="Slide 22"/></li><li class="splide__slide" key="23"><img src="/big-picture-receive/23.svg" alt="Slide 23"/></li><li class="splide__slide" key="24"><img src="/big-picture-receive/24.svg" alt="Slide 24"/></li> </ul></div></div></astro-splide><script type="module" src="/_astro/Splide.astro_astro_type_script_index_0_lang.DkIk0FXZ.js"></script></div><footer><footer class="sl-flex astro-xhxjzfa7"><div class="meta sl-flex astro-xhxjzfa7"><p>Last updated: <time datetime="2025-11-01T00:00:00.000Z">Nov 1, 2025</time></p></div><div class="pagination-links print:hidden astro-jgq3vlii" dir="ltr"><a href="/ispmail-trixie/database/" rel="prev" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-jgq3vlii">Previous<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">Database setup</span></span></a><a href="/ispmail-trixie/dns-records/" rel="next" class="astro-jgq3vlii"><svg aria-hidden="true" class="astro-jgq3vlii astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-jgq3vlii">Next<br class="astro-jgq3vlii"><span class="link-title astro-jgq3vlii">DNS records</span></span></a></div></footer><script defer src="https://comentario.workaround.org/comentario.js"></script><comentario-comments no-fonts="true" id="comments"></comentario-comments><div class="myfooter">This guide is maintained by <a href="mailto:ispmail@christoph-haas.de">Christoph Haas</a> since 2003. All content on workaround.org can be used under the terms of the<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">Creative Commons BY-NC-SA license</a>. Penguin image based on AI art because I suck at drawing.</div></footer></div></div></main></div></div></div></div></body></html>

View file

@ -266,8 +266,8 @@ sides. Lets create it:</p>
<aside aria-label="Allow sending from an alias address?" class="starlight-aside starlight-aside--tip"><p class="starlight-aside__title" aria-hidden="true"><svg aria-hidden="true" class="starlight-aside__icon astro-n5k4ipy7" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path fill-rule="evenodd" d="M1.44 8.855v-.001l3.527-3.516c.34-.344.802-.541 1.285-.548h6.649l.947-.947c3.07-3.07 6.207-3.072 7.62-2.868a1.821 1.821 0 0 1 1.557 1.557c.204 1.413.203 4.55-2.868 7.62l-.946.946v6.649a1.845 1.845 0 0 1-.549 1.286l-3.516 3.528a1.844 1.844 0 0 1-3.11-.944l-.858-4.275-4.52-4.52-2.31-.463-1.964-.394A1.847 1.847 0 0 1 .98 10.693a1.843 1.843 0 0 1 .46-1.838Zm5.379 2.017-3.873-.776L6.32 6.733h4.638l-4.14 4.14Zm8.403-5.655c2.459-2.46 4.856-2.463 5.89-2.33.134 1.035.13 3.432-2.329 5.891l-6.71 6.71-3.561-3.56 6.71-6.711Zm-1.318 15.837-.776-3.873 4.14-4.14v4.639l-3.364 3.374Z" clip-rule="evenodd"/><path d="M9.318 18.345a.972.972 0 0 0-1.86-.561c-.482 1.435-1.687 2.204-2.934 2.619a8.22 8.22 0 0 1-1.23.302c.062-.365.157-.79.303-1.229.415-1.247 1.184-2.452 2.62-2.935a.971.971 0 1 0-.62-1.842c-.12.04-.236.084-.35.13-2.02.828-3.012 2.588-3.493 4.033a10.383 10.383 0 0 0-.51 2.845l-.001.016v.063c0 .536.434.972.97.972H2.24a7.21 7.21 0 0 0 .878-.065c.527-.063 1.248-.19 2.02-.447 1.445-.48 3.205-1.472 4.033-3.494a5.828 5.828 0 0 0 .147-.407Z"/></svg>Allow sending from an alias address?</p><div class="starlight-aside__content"><p>The setup so far works for personal mails from John. But if John was a member
of a distribution list <code dir="auto">pizza@example.org</code> then he would not be able to use
<code dir="auto">pizza@example.org</code> as a sender address.</p><p>If you want to allow that, add an SQL mapping for the <code dir="auto">smtpd_sender_login_maps</code>
as follows:</p><div class="expressive-code"><figure class="frame is-terminal has-title not-content"><figcaption class="header"><span class="title">Add an SQL mapping file</span></figcaption><pre data-language="sh"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">cat</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#096E72">></span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/etc/postfix/mariadb-sender-login-maps.cf</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#096E72">&#x3C;&#x3C;</span><span style="--0:#D9F5DD;--1:#111111">EOF</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">user = mailserver</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">password = MAILSERVER-PASSWORD-HERE</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">hosts = 127.0.0.1</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">dbname = mailserver</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">query = SELECT email FROM virtual_users WHERE email='%s' UNION SELECT source FROM virtual_aliases WHERE destination='%s';</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">EOF</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">postconf</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">smtpd_sender_login_maps=mysql:/etc/postfix/mariadb-sender-login-maps.cf</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="cat > /etc/postfix/mariadb-sender-login-maps.cf <<EOFuser = mailserverpassword = MAILSERVER-PASSWORD-HEREhosts = 127.0.0.1dbname = mailserverquery = SELECT email FROM virtual_users WHERE email=&#x27;%s&#x27; UNION SELECT source FROM virtual_aliases WHERE destination=&#x27;%s&#x27;;EOFpostconf smtpd_sender_login_maps=mysql:/etc/postfix/mariadb-sender-login-maps.cf"><div></div></button></div></figure></div><p>This SQL query will return…</p><ul>
as follows:</p><div class="expressive-code"><figure class="frame is-terminal has-title not-content"><figcaption class="header"><span class="title">Add an SQL mapping file</span></figcaption><pre data-language="sh"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">cat</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#096E72">></span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">/etc/postfix/mariadb-sender-login-maps.cf</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#7FDBCA;--1:#096E72">&#x3C;&#x3C;</span><span style="--0:#D9F5DD;--1:#111111">EOF</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">user = mailserver</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">password = MAILSERVER-PASSWORD-HERE</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">hosts = 127.0.0.1</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">dbname = mailserver</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#3B61B0">query = SELECT email FROM virtual_users WHERE email='%s' UNION SELECT destination FROM virtual_aliases WHERE source='%s';</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">EOF</span></div></div><div class="ec-line"><div class="code">
</div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">postconf</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">smtpd_sender_login_maps=mysql:/etc/postfix/mariadb-sender-login-maps.cf</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="cat > /etc/postfix/mariadb-sender-login-maps.cf <<EOFuser = mailserverpassword = MAILSERVER-PASSWORD-HEREhosts = 127.0.0.1dbname = mailserverquery = SELECT email FROM virtual_users WHERE email=&#x27;%s&#x27; UNION SELECT destination FROM virtual_aliases WHERE source=&#x27;%s&#x27;;EOFpostconf smtpd_sender_login_maps=mysql:/etc/postfix/mariadb-sender-login-maps.cf"><div></div></button></div></figure></div><p>This SQL query will return…</p><ul>
<li>the email address of the current user</li>
<li>all alias addresses that point to the current user</li>
</ul></div></aside>