67b3fd23d1
gates / gates (push) Failing after 13m1s
Part A: claim table documentation/audits/website-refresh-2026-10-08/claims.md; "100% open source" corrected from the licence read; unbacked claims cut (firewall, RAID, snapshots, new-machine restore, self-managed mode, household VPN, "never lost"). Part B: dawarich, docmost, grimmory, homebox, karakeep, mealie, metube, radicale, recipe-importer, sparkyfitness cards; plant-it and wger cut (not offered). Part C: /en/ twins, nav language switch, hreflang both ways, sitemap with xhtml:link, og-image-en.png. Part D: site_gates.py twins/lang/same-apps/no-Hungarian/FAQ-JSON-LD/tail. Operator ruling 9 + choice B in 10-localisation.md §11, §10.7. Register: R-902 (contact mailer source in no repo); R-813, R-784, R-559 annotated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012qRErfCoiTkvDK9N5XHbzb
80 lines
2.6 KiB
Markdown
80 lines
2.6 KiB
Markdown
# The contact mailer — where its source is, and what it sends (2026-10-08)
|
|
|
|
Read-only. Method: the manifest, a search for the source, and strings of the binary copied out of the running pod (`kubectl exec … cat /app/contact-mailer`, no change to the pod).
|
|
|
|
## Manifest
|
|
```
|
|
5:# 1. Build and push the container image:
|
|
53: image: contact-mailer:latest
|
|
55: imagePullPolicy: Never
|
|
66: - name: FROM_EMAIL
|
|
67: value: "Felhom.eu <noreply@felhom.eu>"
|
|
68: - name: TO_EMAIL
|
|
69: value: "info@felhom.eu"
|
|
70: - name: ALLOWED_ORIGIN
|
|
71: value: "https://felhom.eu"
|
|
73: value: "Europe/Budapest"
|
|
76: value: "false"
|
|
```
|
|
## Source search (all empty except the manifest)
|
|
```
|
|
$ git -C felhom.eu log --all --name-only --format= | grep -i -E "mailer|contact" | sort -u
|
|
manifests/contact-mailer.yaml
|
|
$ find /mnt/5_hdd/felhom.eu ~ -maxdepth 5 -iname '*contact-mailer*'
|
|
/mnt/5_hdd/felhom.eu/git/felhom.eu/manifests/contact-mailer.yaml
|
|
```
|
|
## The running pod
|
|
```
|
|
total 5768
|
|
drwxr-xr-x 1 appuser appuser 4096 Feb 5 2026 .
|
|
drwxr-xr-x 1 root root 4096 Jun 29 07:51 ..
|
|
-rwxr-xr-x 1 root root 5894296 Feb 5 2026 contact-mailer
|
|
```
|
|
## Functions in the binary (`strings | grep ^main.`)
|
|
```
|
|
main.(*rateLimiter).allow
|
|
main.(*rateLimiter).allow.deferwrap1
|
|
main.(*rateLimiter).cleanupLoop
|
|
main.buildEmailHTML
|
|
main.corsMiddleware
|
|
main.getClientIP
|
|
main.getEnv
|
|
main.handleContact
|
|
main.handleContact.Printf.func1
|
|
main.handleContact.Printf.func2
|
|
main.handleContact.Printf.func3
|
|
main.handleContact.Printf.func4
|
|
main.handleContact.Printf.func5
|
|
main.handleContact.Printf.func6
|
|
main.handleContact.Printf.func7
|
|
main.handleContact.deferwrap1
|
|
main.handleDebugTest
|
|
main.handleDebugTest.Printf.func1
|
|
main.handleDebugTest.Printf.func2
|
|
main.handleHealth
|
|
main.init
|
|
main.isValidEmail
|
|
main.jsonError
|
|
main.jsonResponse
|
|
main.jsonSuccess
|
|
main.loadConfig
|
|
main.main
|
|
main.main.Printf.func2
|
|
main.main.Printf.func3
|
|
main.main.corsMiddleware.func1
|
|
main.mustEnv
|
|
main.newRateLimiter
|
|
main.newRateLimiter.gowrap1
|
|
main.processAttachment
|
|
main.processAttachment.deferwrap1
|
|
main.sendViaResend
|
|
main.sendViaResend.deferwrap1
|
|
```
|
|
## Visible strings that decide the answer
|
|
```
|
|
Csatolm
|
|
json:"reply_to,omitempty"
|
|
```
|
|
|
|
**Reading:** one `sendViaResend` per form, to `TO_EMAIL` (info@felhom.eu), with `reply_to` set to the visitor; no second send (no confirmation to the visitor). The operator's notification HTML is Hungarian. The page shows its own status messages, not the server's (`kapcsolat.html` / `en/contact.html` `showStatus`), so the English page needs no mailer change. Gap: R-902.
|