Dockerfile
FROM ubuntu:20.04 RUN apt update && apt upgrade -y # postfix install RUN DEBIAN_FRONTEND=noninteractive apt install postfix -y # SMTPにはSMTP AUTHが必要 # SMTP AUTHの為のSASLにはCyrus SaslとCyrus IAMPを使う RUN apt install sasl2-bin -y RUN DEBIAN_FRONTEND=noninteractive apt install cyrus-imapd -y # コンテナ起動のスクリプト COPY ./entrypoint.sh / ENTRYPOINT ["sh", "/entrypoint.sh"]
docker-compose.yml
version: '3.3' services: docker-ubuntu-postfix-example: build: context: ./ dockerfile: Dockerfile image: docker-ubuntu-postfix-example-image:latest container_name: docker-ubuntu-postfix-example-container volumes: # Postfixの設定をマウントする - type: bind source: ./configs/main.cf target: /etc/postfix/main.cf # SASL認証のパスワードをマウントする - type: bind source: ./configs/sasl_passwd target: /etc/postfix/sasl_passwd
entrypoint.sh
#!/bin/bash # postfix起動 postfix start # Postfixは/var/spool/postfixにchrootするので、 # /etc/resolv.confではなく/var/spool/postfix/etc/resolv.confを見に行く。 cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf # SASL認証用テーブル作成 chown root:root /tec/postfix/sasl_passwd postmap /etc/postfix/sasl_passwd # postfixの設定を反映させる postfix reload # コンテナの起動を維持 tail -f /dev/null
configs/main.cf
L postfixを使う場合
# ログの出力設定 mainlog_file = /var/log/mail.log # SMTPリレーの設定 relayhost = [smtp.mailtrap.io]:2525 smtp_sasl_auth_enable = yes smtp_sasl_mechanism_filter = plain smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
configs/sasl_passwd
-> postfixのcredential情報
<メールサーバのFQDN>]:587 <ユーザ名>:<パスワード> #★
$ sudo docker-compose build –no-cache
$ sudo docker-compose up -d
$ sudo docker exec -it docker-ubuntu-postfix-example-container /bin/bash
root@7b16a3765167:/# sendmail your-email@example.com
From:your-email@example.com
To:your-email@example.com
Subject:Hello World
Hello World
.