<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hetzner-infra/mail/postfix/main.cf, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/'/>
<entry>
<title>Switch mail container from SES relay to direct delivery</title>
<updated>2026-06-08T16:34:02+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-08T16:34:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=733ae6e5c4362aa85d54cb7b0674483d3f6862cd'/>
<id>733ae6e5c4362aa85d54cb7b0674483d3f6862cd</id>
<content type='text'>
Port 25 outbound is no longer blocked on Hetzner, so SES relay is
unnecessary. Remove relayhost, SASL auth config, and libsasl2-modules.
Postfix now delivers directly to recipient MX; inet_protocols=ipv4
already present to avoid IPv6 PTR issues.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Port 25 outbound is no longer blocked on Hetzner, so SES relay is
unnecessary. Remove relayhost, SASL auth config, and libsasl2-modules.
Postfix now delivers directly to recipient MX; inet_protocols=ipv4
already present to avoid IPv6 PTR issues.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Configure Amazon SES relay for Postfix (port 25 blocked by Hetzner)</title>
<updated>2026-06-01T12:42:57+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-01T12:42:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=1b3eded34ae693b8662487b9c54a21e4fec1b07f'/>
<id>1b3eded34ae693b8662487b9c54a21e4fec1b07f</id>
<content type='text'>
SES credentials are injected via .env file (not committed). entrypoint.sh
creates sasl_passwd at runtime from SES_ACCESS_KEY_ID / SES_SMTP_PASSWORD.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SES credentials are injected via .env file (not committed). entrypoint.sh
creates sasl_passwd at runtime from SES_ACCESS_KEY_ID / SES_SMTP_PASSWORD.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix milter IPv4 binding and container DNS for MX lookups</title>
<updated>2026-06-01T12:25:41+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-01T12:25:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=1d860809974b246ffe9f1fd31b147487312c91d5'/>
<id>1d860809974b246ffe9f1fd31b147487312c91d5</id>
<content type='text'>
- opendkim.conf / main.cf: localhost → 127.0.0.1 (getent がIPv6を優先し
  Postfix の inet_protocols=ipv4 と競合していた)
- docker-compose.yml: dns: 8.8.8.8/1.1.1.1 を追加 (Docker embedded DNS が
  MX クエリを解決できなかった)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- opendkim.conf / main.cf: localhost → 127.0.0.1 (getent がIPv6を優先し
  Postfix の inet_protocols=ipv4 と競合していた)
- docker-compose.yml: dns: 8.8.8.8/1.1.1.1 を追加 (Docker embedded DNS が
  MX クエリを解決できなかった)

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Postfix+OpenDKIM MTA with txt-based domain management</title>
<updated>2026-06-01T12:14:58+00:00</updated>
<author>
<name>yyamashita</name>
<email>yyamashita@hetzner.yyamashita.com</email>
</author>
<published>2026-06-01T12:14:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.yyamashita.com/hetzner-infra/commit/?id=c55ae2d5daf229b12556d6283ba4e5e8161a5eb5'/>
<id>c55ae2d5daf229b12556d6283ba4e5e8161a5eb5</id>
<content type='text'>
- mail/ ディレクトリ追加: Postfix + OpenDKIM の Docker コンテナ
- mail/domains.txt で送信ドメインを管理（現在: golive.yyamashita.com）
- install.sh が domains.txt から KeyTable/SigningTable を動的生成
- setup-route53.py で SPF/DKIM/DMARC を Route 53 に一括設定
- post-receive フックに mail/deploy.sh を追加

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- mail/ ディレクトリ追加: Postfix + OpenDKIM の Docker コンテナ
- mail/domains.txt で送信ドメインを管理（現在: golive.yyamashita.com）
- install.sh が domains.txt から KeyTable/SigningTable を動的生成
- setup-route53.py で SPF/DKIM/DMARC を Route 53 に一括設定
- post-receive フックに mail/deploy.sh を追加

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
