> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 이메일 전송

> Kubernetes 배포에서 활성화, 초대 및 비밀번호 재설정 이메일을 보냅니다.

**web** 서비스는 모든 Ayakaleaf Pro 파드에서 모든 이메일(활성화, 프로젝트 초대, 비밀번호 재설정)을 보냅니다. 설정은 Toolkit과 동일합니다. [이메일 전송](https://ayakaleaf-pro.mintlify.site/ko/on-premises/configuration/overleaf-toolkit/email-delivery.md)을 참고하세요.

| | |
| - | - |
| 서비스 | web, 모든 Ayakaleaf Pro 파드에서 실행. web이 시작될 때 읽음 |
| 파드 → 외부 | SMTP 서버(`OVERLEAF_EMAIL_SMTP_HOST`) 또는 `OVERLEAF_EMAIL_AWS_SES_REGION`의 Amazon SES API |
| 상태 | Redis의 전송 속도 제한 |
| 주기적 작업 | 없음 |

### 구성

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  OVERLEAF_EMAIL_FROM_ADDRESS: no-reply@example.com
  OVERLEAF_EMAIL_SMTP_HOST: smtp.example.com
  OVERLEAF_EMAIL_SMTP_PORT: "587"
  OVERLEAF_EMAIL_SMTP_SECURE: "false"
  OVERLEAF_EMAIL_SMTP_USER: no-reply@example.com
  # optional
  # OVERLEAF_EMAIL_REPLY_TO: support@example.com
  # OVERLEAF_EMAIL_SMTP_IGNORE_TLS: "false"
  # OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH: "true"
```

`OVERLEAF_EMAIL_FROM_ADDRESS`는 전송을 켭니다. 반드시 SMTP 서버(또는 SES)와 함께 설정하세요. 발신자만 설정하면 Ayakaleaf Pro는 파드 내부의 SMTP 서버를 시도하며 모든 이메일이 실패합니다. 이 값이 없으면 이메일은 전송되지 않고 `web.log`에만 기록됩니다.

`OVERLEAF_EMAIL_SMTP_SECURE`, `OVERLEAF_EMAIL_SMTP_IGNORE_TLS`, `OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH`는 JSON으로 읽히므로 `"true"` 또는 `"false"`를 사용하세요. `yes`와 같은 값은 시작 시 파드의 모든 서비스를 중지시킵니다.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge \
  -p '{"stringData":{"OVERLEAF_EMAIL_SMTP_PASS":"<SMTP password>"}}'
```

Amazon SES API를 사용하는 경우, 대신 `OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID`와 `OVERLEAF_EMAIL_AWS_SES_SECRET_KEY`를 여기에 넣고, `OVERLEAF_EMAIL_DRIVER: ses`와 `OVERLEAF_EMAIL_AWS_SES_REGION`을 ConfigMap에 넣으세요.

**3. 적용, 재시작 및 테스트**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
```

로그인 페이지에서 자신에게 비밀번호 재설정 이메일을 보내 보세요. 도착하지 않으면 파드에서 SMTP 서버에 접근할 수 있는지 확인하고 web 로그를 살펴보세요.

```bash theme={null}
kubectl -n overleaf exec deploy/overleaf -- bash -c 'echo > /dev/tcp/smtp.example.com/587 && echo reachable'
kubectl -n overleaf exec deploy/overleaf -- grep -iE "email|smtp" /var/log/overleaf/web.log | tail
```

### 여러 레플리카

추가 작업이 없습니다. 모든 레플리카가 같은 설정으로 전송하며, 전송 속도 제한은 모든 레플리카에 걸쳐 Redis에서 집계됩니다. SMTP 서버가 알려진 발신자만 허용한다면, 파드가 클러스터 밖으로 나갈 때 사용하는 주소(보통 노드의 주소)를 허용하세요.

### Kubernetes에서의 테스트

Mailpit을 SMTP 서버로 사용하고 레플리카 하나로 구성된 Kubernetes 1.37 환경에서, 이메일을 보내는 엔드투엔드 테스트가 통과했습니다. 테스트 항목은 관리자가 만든 계정의 활성화 이메일, 도메인으로 제한된 자체 가입의 활성화 이메일, 비밀번호 재설정 이메일, 계정이 삭제되었음을 알리는 이메일, 그리고 SMTP 서버가 활성화 또는 삭제 이메일을 거부할 때의 동작입니다. 이 경우에도 계정은 생성되거나 삭제되며, 활성화 이메일은 나중에 다시 보낼 수 있습니다. `OVERLEAF_EMAIL_FROM_ADDRESS`만 있고 SMTP 호스트가 없을 때는 위에서 설명한 대로 비밀번호 재설정 요청이 오류와 함께 실패했고 `web.log`에 "error sending message"가 기록되었습니다.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.