<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Smtp on Kliku Kliku</title><link>https://klikukliku.dev/pl/tags/smtp/</link><description>Recent content in Smtp on Kliku Kliku</description><generator>Hugo</generator><language>pl</language><lastBuildDate>Fri, 17 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://klikukliku.dev/pl/tags/smtp/index.xml" rel="self" type="application/rss+xml"/><item><title>remark42: OAuth przez GitHub i powiadomienia mailowe przez transakcyjny SMTP</title><link>https://klikukliku.dev/pl/posts/remark42-oauth-i-powiadomienia-mailowe/</link><pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate><guid>https://klikukliku.dev/pl/posts/remark42-oauth-i-powiadomienia-mailowe/</guid><description>&lt;h2 id="wstęp"&gt;Wstęp&lt;/h2&gt;
&lt;p&gt;W &lt;strong&gt;&lt;a href="https://klikukliku.dev/pl/posts/remark42-self-hosted-vps/"&gt;Self-hosting remark42 obok istniejącego Caddy na VPS&lt;/a&gt;
&lt;/strong&gt; postawiłem instancję remark42 z minimalną konfiguracją. Kontener stoi, widget się osadza na blogu, komentować mogą wszyscy jako anonim. Setup startowy jest funkcjonalny do pokazania, że coś działa, ale ma dwa braki, które wychodzą pierwszego dnia realnego użycia: brak sensownego uwierzytelniania i brak jakichkolwiek powiadomień, przez co nowy komentarz można zauważyć tylko przez ręczne odwiedzanie wpisów.&lt;/p&gt;
&lt;p&gt;W tym wpisie doprowadzam do działania trzy elementy remark42. Uwierzytelnianie przez GitHub OAuth jako główny kanał logowania, powiadomienia mailowe do admina i do subskrybentów wątków, oraz magic-link email jako trzeci kanał dla osób bez konta GitHub. Prowadzę przez konfigurację konceptualnie, przykłady konkretnych providerów (GitHub jako OAuth, EmailLabs jako transakcyjny SMTP) traktuję jako ilustrację mechaniki, a nie „jedyny słuszny wybór&amp;quot;. Jeżeli macie inne preferencje, mapa drogowa zostaje ta sama, zmieniają się tylko wartości w &lt;code&gt;.env&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>