작업실
서버 분류

메일 서버를 Docker로 구축하여 그누보드, 라이믹스, 워드프레스와 연결하기

컨텐츠 정보

  • 49,938 조회
  • 19 댓글
  • 0 추천
  • 목록

본문



들어가며


도커로 메일서버 구축하기( https://www.wsgvet.com/home/673 )


엊그제 윗 글을 올렸습니다.


기존에 올렸던 글은 모든 서비스가 도커에서 돌아가야 가능한 설정입니다.


즉 그누보드, 라이믹스, 워드프레스가 모두 도커에 있어야했죠.


아마도 이런 서비스들을 도커에서 구동하는 분은 거의 안계실 것 같습니다.


저는 모든 서비스를 도커에서 처리하지만, 기존에 이미 서비스를하고 있다면 굳이 도커에 올릴 필요가 없기 때문이죠.


그래서 로컬에서 이미 서비스들이 돌아갈 때 도커를 새로 설치하여 구축할 수 있는 방법을 알려드리려고 합니다.



도커 메일서버란?


도커에서 메일서버를 직접 운영할 수 있게 해줍니다.


SMTP, ESMTP, POP3, IMAP 방식을 사용할 수 있습니다.


자신의 도메인으로 원하는 계정으로 메일을 보내고 받을 수 있습니다.


DNS 셋팅을 하여 구글, 네이버, 다음, 카카오, 프로톤 메일 등에서 스팸처리 당하지 않게 합니다.


그누보드, 라이믹스, 워드프레스에 연동하여 메일을 보낼 수 있습니다.


아웃룩, 구글 지메일과 연동하여 메일을 읽고 보낼 수 있습니다.



필수사항


가상서버호스팅, VPS, 서버 등 SSH를 직접 실행할 수 있어야 됩니다.


우분투 20.04, 센토스8에 최적화되어 있습니다.


RAM 최소 1GB 이상 (SWAP 2GB 이상 추천)


서버에 SSL 인증서가 반드시 있어야 됩니다. 


그리고 해당 인증서의 경로를 정확하게 알고 있어야 합니다.


해당 서비스의 도메인에 맞게 메일서버가 만들어집니다.


그리고 25(SMTP), 993(IMAP), 465(ESMTP)포트가 열릴 수 있어야 합니다. POP3가 필요하다면 995번 포트도 포함


993 대신에 143(IMAP STARTTLS), 465 대신에 587(ESMTP STARTTLS)도 가능합니다.


25번 포트는 서비스하는 사업자에 따라서 완전히 막아두거나, 조건에 따라 열어주거나, 원래 열려있는 경우가 있습니다.


메일서버를 운영하려면 필수이므로 반드시 서비스 사업자에게 문의하시길 바랍니다.


구글 클라우드의 경우 25번 포트를 열 수 없기 때문에 도커 메일서버를 사용할 수 없습니다.


KT회선으로 직접 운영하거나, 오라클 클라우드를 사용한다면 25번 포트가 열려있으므로 바로 사용 가능합니다.


하지만 오라클 클라우드의 경우 리버스 DNS를 유료사용자에게만 제공하므로 무료 사용자는 힘들다고 보면 됩니다.


25번 포트가 막혀있을 땐 SendGrid api를 이용하여 relay로 쓸 수 있다고 합니다. 


(링크 : https://medium.com/minds-in-the-cloud/spin-off-an-email-server-with-containers-using-docker-compose-on-google-cloud-platform-debian-9-aa0fe8bf3d88 )


API 적용 방법은 추후에 적어보겠습니다.



서버에 도커 설치하기


도커가 없다면 먼저 설치해야 합니다.


docker-mailserver를 이용하기 위해서는 필수입니다.


Ubuntu 20.04 LTS의 경우



sudo apt update -y && sudo apt install curl -y \
&& sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common -y \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - \
&& sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" -y \
&& sudo apt update -y \
&& sudo apt install docker-ce docker-ce-cli containerd.io -y \
&& COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4) \
&& sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose \
&& sudo chmod +x /usr/local/bin/docker-compose;


위 내용 전체를 복사 후 붙여넣기 후 실행하면 한방에 깔립니다.


docker-compose라는 도커 실행을 도와주는 도구도 최신버전으로 설치됩니다.



CentOS 8의 경우



sudo yum -y update && sudo yum install -y curl \
&& sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine \
&& sudo dnf install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm \
&& sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo \
&& sudo dnf install -y docker-ce docker-ce-cli \
&& sudo systemctl start docker && sudo systemctl enable --now docker \
&& COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4) \
&& sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose \
&& sudo chmod +x /usr/bin/docker-compose;


위 내용 전체를 복사 후 붙여넣기 후 실행하면 한방에 깔립니다.


docker-compose라는 도커 실행을 도와주는 도구도 최신버전으로 설치됩니다.



https://docs.docker.com/engine/install/


수동으로 설치하시려면 위 링크를 통해 설치 방법을 배울 수 있습니다.



도커 권한 설정


root의 경우 권한 설정을 할 필요가 없지만 일반 계정이라면 docker를 바로 실행할 수 있게 권한을 주는 것이 좋습니다.



sudo usermod -aG docker $USER


위 명령어로 일반 계정이 docker 명령어를 sudo 없이 바로 실행할 수 있게 해줍니다.


SSH 창을 끄고 다시 접속하면, sudo 없이 바로 docker나 docker-compose 명령어를 쓸 수 있습니다.



방화벽 오픈


우선 포트부터 오픈해줍니다.


우분투에서 ufw를 사용하고 있다면



sudo ufw allow 25/tcp
sudo ufw allow 465/tcp
sudo ufw allow 993/tcp


위와 같이 25번, 465번, 993번 포트를 열어줍니다. POP3를 원한다면 995번도 같은 방식으로 추가해주세요.


993 대신에 143(IMAP STARTTLS), 465 대신에 587(ESMTP STARTTLS)도 가능합니다.


iptables를 사용하고 있다면



sudo iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
sudo netfilter-persistent save
sudo netfilter-persistent reload


위와 같이 25번, 143번 포트를 열어줍니다. POP3를 원한다면 995번도 같은 방식으로 추가해주세요.


993 대신에 143(IMAP STARTTLS), 465 대신에 587(ESMTP STARTTLS)도 가능합니다.


firewall을 사용하고 있다면



sudo firewall-cmd --permanent --add-port=25/tcp
sudo firewall-cmd --permanent --add-port=465/tcp
sudo firewall-cmd --permanent --add-port=993/tcp
sudo firewall-cmd --reload


위와 같이 25번, 143번 포트를 열어줍니다. POP3를 원한다면 995번도 같은 방식으로 추가해주세요.


993 대신에 143(IMAP STARTTLS), 465 대신에 587(ESMTP STARTTLS)도 가능합니다.


또한 각 호스팅 및 클라우드 서비스 패널에서 해당 포트를 모두 열어주세요.



docker-compose.yml 파일 작성하기


이제 도커 설정 및 메일의 데이터가 생성될 폴더로 이동합니다.


보통 /home/사용자이름/mail 경로로 두는게 관리하게 편할 것입니다.


이제 nano, vi, vim 등을 이용하여 docker-compose.yml를 작성합니다.



version: '3'


services:


  example.com:
    image: tvial/docker-mailserver:latest
    hostname: example.com
    domainname: example.com
    container_name: example.com
    ports:
      - "25:25"   # SMTP SEND
      #- "110:110" # POP3 RECEIVE
      #- "143:143" # IMAP RECEIVE
      - "465:465" # ESMTP Enforced Encryption Submission
      #- "587:587" # ESMTP SEND
      - "993:993" # IMAP Enforced Encryption Retrieval
      #- "995:995" # POP3 Enforced Encryption Retrieval POP3가 필요하면 제일 앞에 주석을 해제하세요.
    volumes:
      - ./mail/maildata:/var/mail
      - ./mail/mailstate:/var/mail-state
      - ./mail/maillogs:/var/log/mail
      - ./mail/config/:/tmp/docker-mailserver/
      - /your/certificate/location:/tmp/ssl:ro  # 인증서 위치를 넣어주세요.
      - /etc/localtime:/etc/localtime:ro # 로컬시간과 도커의 시간을 동기화시켜줍니다.
      - /etc/timezone:/etc/timezone:ro # 로컬시간과 도커의 시간을 동기화시켜줍니다.
    environment:
      #- mail.env
      #- env-mailserver
      - SSL_TYPE=manual
      - SSL_CERT_PATH=/tmp/ssl/fullchain.pem # 인증서 이름이 다르면 수정해주세요.
      - SSL_KEY_PATH=/tmp/ssl/privkey.pem # 개인키 이름이 다르면 수정해주세요.
      - ENABLE_SPAMASSASSIN=1
      - SPAMASSASSIN_SPAM_TO_INBOX=1
      #- ENABLE_CLAMAV=1  # 바이러스 검사를 원하면 주석을 해제하세요.
      #- ENABLE_FAIL2BAN=1  # Fail2ban을 활성화하려면 주석을 해제하세요.
      - ENABLE_POSTGREY=1
      #- ENABLE_POP3=1  # POP3 접속을 원하면 주석을 해제하세요.
      - ONE_DIR=1
      - DMS_DEBUG=0
    cap_add:
      - NET_ADMIN
      - SYS_PTRACE
    restart: always


위 내용에서 example.com를 자신의 도메인으로 바꿉니다.



- /your/certificate/location:/tmp/ssl:ro  # 인증서 위치를 넣어주세요.


그리고 위 내용은


/your/certificate/location 폴더를 docker-mailserver의 /tmp/ssl 에 마운트 한다는 말입니다.


따라서 인증서가 있는 절대 경로를 넣으면 됩니다.


letsencrypt 인증서를 예를들면



/etc/letsencrypt/live/example.com:/tmp/ssl:ro


위와 같이 수정하면 됩니다.


그리고 



- SSL_CERT_PATH=/tmp/ssl/fullchain.pem # 인증서 이름이 다르면 수정해주세요.
- SSL_KEY_PATH=/tmp/ssl/privkey.pem # 개인키 이름이 다르면 수정해주세요.


위 내용의 뜻은 


SSL_CERT_PATH : 인증서 경로를 지정하는 것입니다.

SSL_KEY_PATH : 개인키 경로를 지정하는 것입니다.


예를들어 /etc/letsencrypt/live/example.com에 있는 인증서가 /tmp/ssl에 있으므로 그 이후에는 상대경로 그대로 따라간다고 해석하면 됩니다.


위와 같이 fullchain.pem 파일과 privkey.pem 파일이 있는 곳을 지정하면 됩니다.


해당 내용을 모두 수정한 후 저장합니다.



실행하기



docker-compose up -d example.com


example.com 를 자신의 도메인 이름으로 바꾸고 실행합니다.



~/mail$ docker-compose up -d example.com
Creating network "mail_default" with the default driver
Pulling example.com (tvial/docker-mailserver:latest)...
latest: Pulling from tvial/docker-mailserver
d121f8d1c412: Pull complete
c5b4a53c402d: Pull complete
6fd5e328f571: Pull complete
2e231d635543: Pull complete
f925d7866a50: Pull complete
a85ec6df5fb2: Pull complete
d918534d14a8: Pull complete
91bf2b564bf3: Pull complete
c3794b250e39: Pull complete
b7a8126f4fee: Pull complete
038d572f7344: Pull complete
266a53d49907: Pull complete
62fdf8c89b5b: Pull complete
2e1187bf042e: Pull complete
01093875f0df: Pull complete
91b4fc3897cf: Pull complete
7a607646aa43: Pull complete
7708ca69a75f: Pull complete
bdd5513fac17: Pull complete
19850634145f: Pull complete
5fa1fc5c8606: Pull complete
eee7f6b643d7: Pull complete
dbc38b514df3: Pull complete
1869e9488861: Pull complete
745e4d6a5e2b: Pull complete
61a0994c1e29: Pull complete
e12701232f17: Pull complete
b2e3c4d846d8: Pull complete
8c91901abd9f: Pull complete
012bd1b9fc18: Pull complete
d2fafbfc20a2: Pull complete
6e154df770c8: Pull complete
27d8004d592c: Pull complete
e972663808b3: Pull complete
5f0a6f610fcc: Pull complete
55f6e28848f9: Pull complete
b516489901df: Pull complete
f88a814af0f0: Pull complete
36dd809a5c88: Pull complete
0b4f562dcd83: Pull complete
Digest: sha256:c5b3f52cfbaef8b6c82b4c1e975272e7f2612fb6026f3b54b7c48996f5636c8a
Status: Downloaded newer image for tvial/docker-mailserver:latest
Creating example.com ... done


위와 같이 docker-mailserver 이미지를 다운 받고, 실행합니다.



계정생성하기



위 명령어로 설정 스크립트를 다운 받습니다.


이제 계정을 생성해야겠죠?



./setup.sh email add admin@example.com mypassword


위와 같이 admin@example.com 대신 자신이 원하는 이메일 계정, mypassword 대신 자신이 원하는 비번을 넣고 실행합니다.


계정 생성이 끝났습니다.


계정에 대한 정보는 ./mail/config/postfix-accounts.cf 에 저장됩니다.



DKIM 생성하기



./setup.sh config dkim


위 명령어로 생성합니다.



$ ./setup.sh config dkim
Creating DKIM private key /tmp/docker-mailserver/opendkim/keys/example.com/mail.private
Creating DKIM KeyTable
Creating DKIM SigningTable
Creating DKIM TrustedHosts


위와 같이 생성됩니다. 정말 쉽죠?


./mail/config/opendkim/keys/example.com/mail.txt


위 파일에 우리가 원하는 DKIM 설정 내용이 들어있습니다.


mail.txt 파일을 열어보거나



sudo cat ./mail/config/opendkim/keys/example.com/mail.txt


example.com을 자신의 도메인으로 변경 후 위 명령어로 출력하면



mail._domainkey	IN	TXT	( "v=DKIM1; h=sha256; k=rsa; "
	  "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvD0NKCyd0/7C25kQ75/cY+upZzGlxNiY8GMELiUoBox9FFaxuGZMImrJVQW/tGt9fQgEyKobQTZjqguEcp4Yg4e9GRFCcSKBOWyvZqjUpl3+cY/csov89kD98V4BUeVQ/GdDYt81HV7IuYlJ57JyS/idYyKe9WuvCmnZMQJvfCjZEBtk2+OIeQqJHWVKILyIEdpq3PzeFm1V0p"
	  "t0D8wpGPoBD6aE2FQkQTpZN5APcmAIHAO6RVnjo1ihGujh2aiuRGI7ECXBFIo8os9G85WnFJVUdkjD55x1ZLLNeo6WmQnd3JteuarcLVFjWOCSKPVmcS8/YorZrbR7qleDEnD/6QIDAQAB" )  ; ----- DKIM key mail for example.com


위와 같이 엄청나게 긴 내용이 나옵니다.


이제 DNS 설정에 들어가게 내용을 정리해줍니다. 쌍따옴표를 제거하면 된다고 보면 되는데요.



"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvD0NKCyd0/7C25kQ75/cY+upZzGlxNiY8GMELiUoBox9FFaxuGZMImrJVQW/tGt9fQgEyKobQTZjqguEcp4Yg4e9GRFCcSKBOWyvZqjUpl3+cY/csov89kD98V4BUeVQ/GdDYt81HV7IuYlJ57JyS/idYyKe9WuvCmnZMQJvfCjZEBtk2+OIeQqJHWVKILyIEdpq3PzeFm1V0p"
	  "t0D8wpGPoBD6aE2FQkQTpZN5APcmAIHAO6RVnjo1ihGujh2aiuRGI7ECXBFIo8os9G85WnFJVUdkjD55x1ZLLNeo6WmQnd3JteuarcLVFjWOCSKPVmcS8/YorZrbR7qleDEnD/6QIDAQAB"


특히 위 부분이 나눠진게 아니라 합쳐줘야 됩니다. 따라서 최종 완성본은



v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvD0NKCyd0/7C25kQ75/cY+upZzGlxNiY8GMELiUoBox9FFaxuGZMImrJVQW/tGt9fQgEyKobQTZjqguEcp4Yg4e9GRFCcSKBOWyvZqjUpl3+cY/csov89kD98V4BUeVQ/GdDYt81HV7IuYlJ57JyS/idYyKe9WuvCmnZMQJvfCjZEBtk2+OIeQqJHWVKILyIEdpq3PzeFm1V0pt0D8wpGPoBD6aE2FQkQTpZN5APcmAIHAO6RVnjo1ihGujh2aiuRGI7ECXBFIo8os9G85WnFJVUdkjD55x1ZLLNeo6WmQnd3JteuarcLVFjWOCSKPVmcS8/YorZrbR7qleDEnD/6QIDAQAB


위와 같이 한줄로 만들면 됩니다. 메모장에 저장해두세요. DNS설정에 꼭 들어가야 됩니다.



도메인을 메일서버로 작업하기 위한 설정 추가하기


원래는 mail.example.com으로 메일서버를 만드는 것이 정석입니다.


하지만 SSL 인증서 발급이 워낙 번거롭기 때문에 이미 있는 인증서를 쓰기위해 메일서버 도메인을 현재 도메인과 같게하는 것입니다.


https://github.com/tomav/docker-mailserver/wiki/FAQ-and-Tips#can-i-use-nakedbare-domains-no-host-name


위 링크에 따르면


./mail/config/postfix-main.cf


위 경로에 파일을 만들어서 



mydestination = localhost.$mydomain, localhost


위 내용을 넣어주면 됩니다.


그런데 config 폴더가 root 권한이기 때문에



echo 'mydestination = localhost.$mydomain, localhost' | sudo tee -a ./mail/config/postfix-main.cf


위 명령어 한줄이면 바로 생성됩니다.


이제 도커에서 작업은 끝났습니다.




docker-compose up -d --force-recreate example.com


example.com 를 자신의 메일서버(도메인)으로 바꿉니다.


위 명령어로 재생성해줍니다.


이제 서버에서 메일서버가 정상적으로 구동되기 시작했습니다.


혹시 



docker-compose logs example.com


위 명령어를 내렸을 때 dovecot 로그가 지속적으로 찍힌다면 SSL 인증서 경로가 잘못된 것이니 반드시 체크해주세요.



DNS 설정하기


이제 DNS 설정을 해줍니다.


총 4개를 입력할 것입니다.



1. Type : MX, Name : @(host), Content : example.com, Priority : 10
2. Type : TXT, Name : @(host), Content : v=spf1 mx ~all
3. Type : TXT, Name : _dmarc, Content : v=DMARC1; p=none; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; sp=none; ri=86400
4. Type : TXT, Name : mail._domainkey, Content : v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvD0NKCyd0/7C25kQ75/cY+upZzGlxNiY8GMELiUoBox9FFaxuGZMImrJVQW/tGt9fQgEyKobQTZjqguEcp4Yg4e9GRFCcSKBOWyvZqjUpl3+cY/csov89kD98V4BUeVQ/GdDYt81HV7IuYlJ57JyS/idYyKe9WuvCmnZMQJvfCjZEBtk2+OIeQqJHWVKILyIEdpq3PzeFm1V0pt0D8wpGPoBD6aE2FQkQTpZN5APcmAIHAO6RVnjo1ihGujh2aiuRGI7ECXBFIo8os9G85WnFJVUdkjD55x1ZLLNeo6WmQnd3JteuarcLVFjWOCSKPVmcS8/YorZrbR7qleDEnD/6QIDAQAB


위와 같이 4개를 넣어주면 됩니다.


참고로 @(host)는 클라우드플레어에서는 @를 넣으면 host가 되고, luadns에서는 비워둬야 hostname이 됩니다.


1번은 MX 레코드를 지정하는 것입니다.

2번은 SPF 설정입니다. MX레코드에 지정된 도메인의 IP를 찾아서 검증하는 것입니다.

3번은 DMARC 설정입니다. 스팸이메일 처리에 대한 규칙을 적은 것입니다. none은 아무것도 안하는 것이고, mailto가 2개 있는데 보고서를 받는 이메일을 넣으면 됩니다. https://samsikworld.tistory.com/488 링크를 참조하세요.

4번은 DKIM 설정입니다. 아까 생성했던 그 DKIM을 입력하면 됩니다. 제가 넣은 것과 똑같이 넣으면 절대로 안되고 자신에게 맞는 값을 넣어야 됩니다.



rDNS 리버스 DNS, 리버스 도메인, PTR 레코드 설정하기


리버스 도메인이란 일반적인 도메인 조회가 영문 주소(도메인 네임)를 DNS에 질의하여 IP 주소를 찾는 것과 반대로, IP 주소를 사용하여 도메인 네임을 찾는 것을 의미합니다. (나무위키 펌)


구글, 다음 메일은 리버스 DNS를 설정하지 않아도 SPF, DMARC, DKIM 작업만 하면 정상 메일로 인식합니다. (네이버 메일은 공지에는 스팸처리한다고 합니다. 저는 스팸처리 안되고 정상 메일처리되더군요 ㅎㅎ)


하지만 카카오메일, 프로톤메일 등 몇몇 업체들은 리버스 DNS 설정을 하지 않으면 바로 스팸메일로 분류합니다.


AWS : https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-port-25-throttle


Azure : https://docs.microsoft.com/ko-kr/azure/virtual-network/troubleshoot-outbound-smtp-connectivity 


오라클 클라우드 : https://docs.cloud.oracle.com/en-us/iaas/Content/DNS/Tasks/reversedns.htm


구글 클라우드 : https://cloud.google.com/compute/docs/instances/create-ptr-record


KT : https://dms.kornet.net/reverse


나무 위키 리버스 도메인 설명 : https://namu.wiki/w/리버스 도메인


리버스 도메인 설정방법은 각 IP 제공자에 따라 다르므로 호스팅이나 클라우드 사업자에게 직접 요청하거나 설정해야 합니다.


그리고 KISA 불법스팸대응센터에 화이트 도메인 신청을 해야 국내업체의 스팸처리 확률이 줄어듭니다.


화이트도메인 등록 신청하기 : https://spam.kisa.or.kr/white/sub4.do


이제 DNS 설정, rDNS 설정, 화이트도메인 신청이 끝났습니다.



각 프로그램 별 설정 방법


대부분의 프로그램 및 어플에서 IMAP 방식의 접속을 지원합니다.


우리가 설정했던 IMAP SSL/TLS 방식과 완벽 호환되므로, 그 방식으로 설정하면 됩니다.


그누보드 설정


./config.php 173번째줄



// SMTP
// lib/mailer.lib.php 에서 사용
define('G5_SMTP',      'example.com');
define('G5_SMTP_PORT', '25');


위와 같이 변경하기



라이믹스 설정



발송방법 : SMTP
SMTP 서버 : example.com
SMTP 포트 : 465
SMTP 보안 : SSL
아이디 : admin@example.com
비번 : 설정한 비밀번호



워드프레스 Post SMTP Mailer/Email Log 플러그인 기준


https://wordpress.org/plugins/post-smtp/



Transport


Type : SMTP
Mailer Type : PostSMTP


Transport Settings


Outgoing Mail Server Hostname : example.com
Outgoing Mail Server Port : 465
Envelope-From Email Address : admin@example.com
Security : SMTPS
Authentication : Plain


Authentication
Username : admin@example.com
Password : 설정한 비밀번호


아웃룩 설정


계정 넣고 기다리면 고급설정 나오는데, IMAP 선택하기


받는 메일



사용자이름 : admin@example.com
비번 : 설정한 비밀번호


서버 : example.com
포트: 993
암호화방법 : SSL/TLS
SPA(보안 암호 인증)를 사용한 로그인 필요 체크 해제


보내는 메일



서버 : example.com
포트 : 465
암호화방법 : SSL/TLS
SPA(보안 암호 인증)를 사용한 로그온 필요 : 체크 해제
발신(SMTP) 서버에 인증필요 체크 : 받는 메일 서버와 동일한 설정 사용


993 대신에 143(암호화방법:STARTTLS), 465 대신에 587(암호화방법 STARTTLS)도 가능합니다.


구글 안드로이드 지메일 설정하기


수신설정



사용자이름 admin@example.com
비번 : 설정한 비밀번호
서버 : example.com
포트 : 993
보안유형 : SSL/TLS


발신설정



사용자이름 : admin@example.com
비번 : 설정한 비밀번호
SMTP 서버 : example.com
포트 : 465
보안유형 : SSL/TLS


993 대신에 143(암호화방법:STARTTLS), 465 대신에 587(암호화방법 STARTTLS)도 가능합니다.


참고로 POP3 방식으로 접속하려면 받는 서버를 995번으로 설정하고 보안유형에 SSL/TLS로 설정하면 됩니다.



참고 사이트


도커 메일서버 : https://github.com/tomav/docker-mailserver 


sfuhost에서 메일서버 셋팅방법 : https://sfuhost.com/manual/700380 


구글클라우드 메일서버 셋팅방법 : https://medium.com/minds-in-the-cloud/spin-off-an-email-server-with-containers-using-docker-compose-on-google-cloud-platform-debian-9-aa0fe8bf3d88 


DMARC 개념 정리 : https://samsikworld.tistory.com/488 


Opening Mail Server : https://blog.0chan.dev/2020-06-16-Opening-Mail-Server/ 

관련자료

댓글 19 / 2 페이지

오라클에서 성공님의 댓글

오라클에서 리버스 DNS 설정할 수 있습니다. Support Request 열어서 아이피 xxx.xxx.xxx.xxx를 도메인 example.com으로 PTR 레코드 만들어달라고 하니 리버스DNS 만들어 줬습니다.
2021년 6월 25일 이후에 만든 계정의 경우 아웃바운드 포트 25가 막혀있으니 Request Limit Increase(제한 증가 요청)에서 Others, Other Limits 선택하고 아웃바운드 포트 25 열어달라고 하면 됩니다.(각 인스턴스 마다 따로 요청해야 하는 것 같습니다.)
그리고 한글로 요청이 되는지는 모르겠지만 영어로 요청하는 것이 나을 듯 합니다.

DKIM 너무길러님의 댓글

안녕하세요 가비아 DNS사용중인데 DKIM 값이 250글자를 초과해 적용할 수 없다고 나옵니다 ㅠ 이런 경우에는 어떻게 해야 할지 모르겠어서 질문 드립니다 ㅠ

물렁이님의 댓글의 댓글

많은 DNS는 TXT 레코드에 내용 길이를 최대 255자로 제한하고 있어서, RSA4096으로 생성된 키는 너무 길어 넣지 못합니다.

생성된 ./mail/config/opendkim/keys/example.com/mail.txt와 ./mail/config/opendkim/keys/example.com/mail.private를 모두 지우신 후,
./setup.sh config dkim가 아니라, 아래와 같이 키 길이를 1024로 지정하시면 255자 내로 들어가는 길이로 생성이 됩니다.
./setup.sh config dkim keysize 1024
전체 157 / 1 페이지
RSS
알림 0